質問編集履歴
2
自分の考えを追加しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -46,7 +46,7 @@
|
|
46
46
|
|
47
47
|
#xは使わなくても解けたので使いませんでした
|
48
48
|
|
49
|
-
x,y = map(int,input().split())
|
49
|
+
x,y = map(int,input().split())
|
50
50
|
|
51
51
|
li = []
|
52
52
|
|
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
for i in range(y):
|
56
56
|
|
57
|
-
a,b = map(int,input().split())
|
57
|
+
a,b = map(int,input().split())
|
58
58
|
|
59
59
|
liSec = [i for i in range(a,b+1)]
|
60
60
|
|
@@ -84,9 +84,9 @@
|
|
84
84
|
|
85
85
|
a_i番目からb_i番目を指定すると、そのインデックスにある"0"は"1"へと変化します。
|
86
86
|
|
87
|
-
A[a_i]からA[
|
87
|
+
A[a_i]からA[b_i]が全て"1"の場合は、全て"0"へとなります。
|
88
88
|
|
89
|
-
またA[a_i]からA[
|
89
|
+
またA[a_i]からA[b_i]が全て"1"の場合でない場合は"0"からは"1"、"1"はそのままとなる.
|
90
90
|
|
91
91
|
|
92
92
|
|
@@ -105,6 +105,14 @@
|
|
105
105
|
...
|
106
106
|
|
107
107
|
a_N b_N
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
制約
|
112
|
+
|
113
|
+
1 ≦ L ≦ 1,000,000,000 , 0 ≦ N ≦ 100,000
|
114
|
+
|
115
|
+
1 ≦ a_i ≦ b_i ≦ L (1 ≦ i ≦ N)
|
108
116
|
|
109
117
|
|
110
118
|
|
@@ -139,3 +147,45 @@
|
|
139
147
|
A = ["0","1","1","0","0","1","1","1","0","0"]
|
140
148
|
|
141
149
|
よって"1"の個数は5である。
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
###私の考え
|
154
|
+
|
155
|
+
Lの数が膨大になるため配列内にN個の"0"を生成するやり方ではなく、
|
156
|
+
|
157
|
+
新しい配列「li」 にインデックス番号を追加し、説明するのは難しいが
|
158
|
+
|
159
|
+
配列「li」にある要素全ては問題でいう”1”の時のインデックス番号が入っているため、
|
160
|
+
|
161
|
+
最後に配列「li」の要素数を出力すればいいという考え方です
|
162
|
+
|
163
|
+
10 3
|
164
|
+
|
165
|
+
2 6
|
166
|
+
|
167
|
+
6 8
|
168
|
+
|
169
|
+
3 4
|
170
|
+
|
171
|
+
の時
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
li = []
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
2番目から6番目の時
|
180
|
+
|
181
|
+
li = ["2","3","4","5","6"]
|
182
|
+
|
183
|
+
6から8の時
|
184
|
+
|
185
|
+
li = ["2","3","4","5","6","7","8"]
|
186
|
+
|
187
|
+
3から4の時
|
188
|
+
|
189
|
+
li = ["2","5","6","7","8"]
|
190
|
+
|
191
|
+
よって"1"の個数は5である。
|
1
問題文をかなりアレンジして追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -71,3 +71,71 @@
|
|
71
71
|
print(len(li))
|
72
72
|
|
73
73
|
```
|
74
|
+
|
75
|
+
##追記
|
76
|
+
|
77
|
+
問題文をアレンジしてみました。
|
78
|
+
|
79
|
+
本当の問題文とは大きく異なりますが、よろしくお願いします。
|
80
|
+
|
81
|
+
###問題
|
82
|
+
|
83
|
+
L個の"0"が入った配列Aがあります。 A = ["0","0","0","0",,,,,,]
|
84
|
+
|
85
|
+
a_i番目からb_i番目を指定すると、そのインデックスにある"0"は"1"へと変化します。
|
86
|
+
|
87
|
+
A[a_i]からA[a_i]が全て"1"の場合は、全て"0"へとなります。
|
88
|
+
|
89
|
+
またA[a_i]からA[a_i]が全て"1"の場合でない場合は"0"からは"1"、"1"はそのままとなるとき
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
N回操作を行った時,配列Aに入ってる"1"の個数を求めよ
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
####入力例
|
98
|
+
|
99
|
+
L N
|
100
|
+
|
101
|
+
a_1 b_1
|
102
|
+
|
103
|
+
a_2 b_2
|
104
|
+
|
105
|
+
...
|
106
|
+
|
107
|
+
a_N b_N
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
####例
|
112
|
+
|
113
|
+
10 3
|
114
|
+
|
115
|
+
2 6
|
116
|
+
|
117
|
+
6 8
|
118
|
+
|
119
|
+
3 4
|
120
|
+
|
121
|
+
の時
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
A = ["0","0","0","0","0","0","0","0","0","0"]
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
2番目から6番目の時
|
130
|
+
|
131
|
+
A = ["0","1","1","1","1","1","0","0","0","0"]
|
132
|
+
|
133
|
+
6から8の時
|
134
|
+
|
135
|
+
A = ["0","1","1","1","1","1","1","1","0","0"]
|
136
|
+
|
137
|
+
3から4の時
|
138
|
+
|
139
|
+
A = ["0","1","1","0","0","1","1","1","0","0"]
|
140
|
+
|
141
|
+
よって"1"の個数は5である。
|