#include<iostream> #include<algorithm> #include<set> usingnamespace std; set<int>num; intmain(){ int N; cin >> N; int a; for (int i = 0; i < N; i++) { cin >> a; num.insert(a); } auto it = num.begin(); for (; it != num.end(); it++) { if (*it > 0)break; } int n = 1; while (it != num.end()) { if (*it != n) { break; } it++; n++; } cout << n; }
#include<iostream> usingnamespace std; int Tsize, N, M; bool prime[10010]; int num[10010]; voidcal_prime(){ for (int i = 2; i < 10010; i++) { if (!prime[i]) { for (int j = i + i; j < 10010; j += i) { prime[j] = true; } } } } voidinsert(int n){ for (int i = 0; i < Tsize; i++) { if (num[(n + i * i)%Tsize] == -1) { num[(n + i * i) % Tsize] = n; return; } } printf("%d cannot be inserted.\n",n); } int cnt = 0; voidfind(int n){ for (int i = 0; i < Tsize; i++) { cnt++; if (num[(n+i*i)%Tsize]==-1||num[(n + i * i) % Tsize] == n) { return; } } cnt++; } intmain(){ cal_prime(); cin >> Tsize >> N >> M; if (prime[Tsize]) { for (int i = Tsize; i < 10010; i++) { if (!prime[i]) { Tsize = i; break; } } } int a; fill(num, num + Tsize, -1); for (int i = 0; i < N; i++) { cin >> a; insert(a); } for (int i = 0; i < M; i++) { cin >> a; find(a); } printf("%.1f\n", 1.0 * cnt / M); }
#include<iostream> #include<vector> usingnamespace std; int N, M; vector<int>G[1010]; bool flag[1010]; int num[1010]; intmain(){ cin >> N >> M; int a, b; for (int i = 0; i < M; i++) { cin >> a >> b; G[b].push_back(a); } int n; cin >> n; vector<int>seque; for (int i = 0; i < n; i++) { fill(flag, flag + N, false); bool ans = true; for (int j = 0; j < N; j++) { cin >> num[j]; } for (int j = 0; j < N; j++) { flag[num[j]] = true; for (int k = 0; k < G[num[j]].size(); k++) { if (!flag[G[num[j]][k]]) { ans = false; break; } } if (!ans) { break; } } if (!ans)seque.push_back(i); } for (int i = 0; i < seque.size(); i++) { cout << seque[i]; if (i != seque.size() - 1) cout << " "; else cout << endl; } }