回答編集履歴

1

最適化

2020/11/14 16:08

投稿

kairi003
kairi003

スコア1330

test CHANGED
@@ -1,4 +1,4 @@
1
- Aiの値は高々101通りなので、一度配列に各数値が出現するかを記録してら、配列をループさせて数えればいいと思います
1
+ Aiの値は高々101通りなので、入力を配列flagに記録していき、初出なcntに1加算するった処理で良いと思います
2
2
 
3
3
 
4
4
 
@@ -10,23 +10,23 @@
10
10
 
11
11
  int main(){
12
12
 
13
- int N,num,sum=0;
13
+ int n,a,cnt=0;
14
14
 
15
- char exists[101] = {};
15
+ char flag[101] = {};
16
16
 
17
- scanf("%d", &N);
17
+ scanf("%d", &n);
18
18
 
19
- for (int i=0; i<N; i++) {
19
+ for (int i=0; i<n; i++) {
20
20
 
21
- scanf("%d", &num);
21
+ scanf("%d", &a);
22
22
 
23
+ if (flag[a] == 0) cnt++;
24
+
23
- exists[num] = 1;
25
+ flag[a] = 1;
24
26
 
25
27
  }
26
28
 
27
- for (int i=0; i<101; i++) sum += exists[i];
28
-
29
- printf("%d\n", sum);
29
+ printf("%d\n", cnt);
30
30
 
31
31
  }
32
32