# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
23192 | 2017-05-04T11:43:29 Z | model_code | Baloni (COCI15_baloni) | C++11 | 1599 ms | 96004 KB |
#include <cstdio> #include <algorithm> #include <cstring> #include <set> using namespace std; const int MAXN = 1 << 20; int n; set <int> S[MAXN]; int find (int pos, int v) { set<int>::iterator it = S[v].lower_bound(pos); if (it == S[v].end()) return -1; return *it; } int v[MAXN]; int main (void){ scanf("%d", &n); for (int i = 0; i < n; ++i) { scanf("%d", &v[i]); S[v[i]].insert(i); } int ans = 0; for (int i = 0; i < n; ++i) { if (S[v[i]].count(i) == 0) continue; int pos = i; ++ans; while (pos >= 0) { S[v[pos]].erase(pos); pos = find(pos, v[pos] - 1); } } printf("%d\n", ans); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 9 ms | 54424 KB | Output is correct |
2 | Correct | 6 ms | 54556 KB | Output is correct |
3 | Correct | 9 ms | 54688 KB | Output is correct |
4 | Correct | 13 ms | 54688 KB | Output is correct |
5 | Correct | 1193 ms | 91516 KB | Output is correct |
6 | Correct | 1599 ms | 96004 KB | Output is correct |
7 | Correct | 1229 ms | 88744 KB | Output is correct |
8 | Correct | 1146 ms | 88348 KB | Output is correct |
9 | Correct | 1249 ms | 90196 KB | Output is correct |
10 | Correct | 1229 ms | 91648 KB | Output is correct |