Submission #23192

#TimeUsernameProblemLanguageResultExecution timeMemory
23192model_codeBaloni (COCI15_baloni)C++11
100 / 100
1599 ms96004 KiB
#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 (stderr)

baloni.cpp: In function 'int main()':
baloni.cpp:22:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &n);
                  ^
baloni.cpp:24:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &v[i]);
                       ^
#Verdict Execution timeMemoryGrader output
Fetching results...