Submission #1007510

#TimeUsernameProblemLanguageResultExecution timeMemory
1007510The_SamuraiGondola (IOI14_gondola)C++17
35 / 100
11 ms2124 KiB
#include "gondola.h" #include "bits/stdc++.h" using namespace std; int valid(int n, int a[]) { int last = -1; set<int> st; for (int i = 0; i < 2 * n; i++) { if (a[i % n] >= n) continue; st.insert(a[i % n]); if (last != -1 and (a[last % n] + i - last - 1) % n != a[i % n] - 1) return 0; last = i; } return st.size() == n; } //---------------------- const int mod = 1e9 + 9; int replacement(int n, int a[], int replacementSeq[]) { const int N = 2e5 + 5; vector<int> owns(N, -1), old(n); int any = -1, last = -1; for (int i = 0; i < n; i++) { if (a[i] <= n) continue; owns[a[i]] = i; if (any == -1 or a[any] < a[i]) any = i; } for (int i = 0; i < 2 * n; i++) { if (a[i % n] <= n) last = i; if (last == -1) continue; old[i % n] = (a[last % n] + i - last - 1) % n + 1; } if (last == -1) { for (int i = 0; i < n; i++) old[i] = i + 1; } int mx = *max_element(a, a + n), z = 0; for (int i = n + 1; i <= mx; i++) { if (owns[i] != -1) { replacementSeq[z++] = old[owns[i]]; old[owns[i]] = i; } else { replacementSeq[z++] = old[any]; old[any] = i; } } return z; } //---------------------- int countReplacement(int n, int a[]) { if (!valid(n, a)) return 0; const int N = 1e6 + 5; vector<int> owns(N, -1); for (int i = 0; i < n; i++) { cout << a[i] << ' '; } cout << -1; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:14:22: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   14 |     return st.size() == n;
      |            ~~~~~~~~~~^~~~
gondola.cpp: In function 'int countReplacement(int, int*)':
gondola.cpp:56:27: warning: control reaches end of non-void function [-Wreturn-type]
   56 |     vector<int> owns(N, -1);
      |                           ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...