teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

最適化

2020/11/14 16:08

投稿

kairi003
kairi003

スコア1332

answer CHANGED
@@ -1,17 +1,17 @@
1
- Aiの値は高々101通りなので、一度配列に各数値が出現するかを記録してら、配列をループさせて数えればいいと思います
1
+ Aiの値は高々101通りなので、入力を配列flagに記録していき、初出なcntに1加算するった処理で良いと思います
2
2
 
3
3
  ```c
4
4
  #include <stdio.h>
5
5
 
6
6
  int main(){
7
- int N,num,sum=0;
7
+ int n,a,cnt=0;
8
- char exists[101] = {};
8
+ char flag[101] = {};
9
- scanf("%d", &N);
9
+ scanf("%d", &n);
10
- for (int i=0; i<N; i++) {
10
+ for (int i=0; i<n; i++) {
11
- scanf("%d", &num);
11
+ scanf("%d", &a);
12
+ if (flag[a] == 0) cnt++;
12
- exists[num] = 1;
13
+ flag[a] = 1;
13
14
  }
14
- for (int i=0; i<101; i++) sum += exists[i];
15
- printf("%d\n", sum);
15
+ printf("%d\n", cnt);
16
16
  }
17
17
  ```