回答編集履歴
4
コードの改善 (search の呼び出しを 1つにまとめた)
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
C で書いてみました。単純なコードなので、時間制限に引っかかるかもしれません。
|
2
2
|
```C
|
3
|
-
#include <stdio.h>
|
3
|
+
#include <stdio.h> // scanf, printf
|
4
4
|
|
5
5
|
int search(int v[], int n, int x)
|
6
6
|
{
|
@@ -17,21 +17,18 @@
|
|
17
17
|
{
|
18
18
|
static int v[200002];
|
19
19
|
v[0] = 0;
|
20
|
-
int
|
20
|
+
int q, c, x, n = 2;
|
21
21
|
scanf("%d%d", &v[1], &q);
|
22
22
|
while (--q >= 0) {
|
23
23
|
scanf("%d%d", &c, &x);
|
24
|
+
int i = search(v, n, x);
|
24
25
|
if (c == 1) {
|
25
|
-
int i = search(v, n, x);
|
26
|
-
for (int j = n; j > i; j--) v[j] = v[j-1];
|
26
|
+
for (int j = n++; j > i; j--) v[j] = v[j-1];
|
27
27
|
v[i] = x;
|
28
|
-
n++;
|
29
28
|
}
|
30
|
-
else {
|
31
|
-
int i = search(v, n, x);
|
32
|
-
|
29
|
+
else printf("%d\n", v[i] - v[i-1]);
|
33
|
-
}
|
34
30
|
}
|
35
31
|
}
|
32
|
+
|
36
33
|
```
|
37
34
|
これのどこが分からないのかをコメントしてください。
|
3
不要なコードの削除
answer
CHANGED
@@ -16,7 +16,6 @@
|
|
16
16
|
int main(void)
|
17
17
|
{
|
18
18
|
static int v[200002];
|
19
|
-
if (!v) return puts("out of memory");
|
20
19
|
v[0] = 0;
|
21
20
|
int n = 2, q, c, x;
|
22
21
|
scanf("%d%d", &v[1], &q);
|
2
malloc をやめて、static に変更
answer
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
C で書いてみました。単純なコードなので、時間制限に引っかかるかもしれません。
|
2
2
|
```C
|
3
3
|
#include <stdio.h> // scanf, printf
|
4
|
-
#include <stdlib.h> // malloc, free
|
5
4
|
|
6
5
|
int search(int v[], int n, int x)
|
7
6
|
{
|
@@ -16,7 +15,7 @@
|
|
16
15
|
|
17
16
|
int main(void)
|
18
17
|
{
|
19
|
-
int
|
18
|
+
static int v[200002];
|
20
19
|
if (!v) return puts("out of memory");
|
21
20
|
v[0] = 0;
|
22
21
|
int n = 2, q, c, x;
|
@@ -34,7 +33,6 @@
|
|
34
33
|
printf("%d\n", v[i] - v[i-1]);
|
35
34
|
}
|
36
35
|
}
|
37
|
-
free(v);
|
38
36
|
}
|
39
37
|
```
|
40
38
|
これのどこが分からないのかをコメントしてください。
|
1
コードの修正
answer
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
int main(void)
|
18
18
|
{
|
19
|
-
int *v = malloc(sizeof(int[
|
19
|
+
int *v = malloc(sizeof(int[200002]));
|
20
20
|
if (!v) return puts("out of memory");
|
21
21
|
v[0] = 0;
|
22
22
|
int n = 2, q, c, x;
|