Submission #385926

#TimeUsernameProblemLanguageResultExecution timeMemory
385926aarrGondola (IOI14_gondola)C++14
25 / 100
43 ms5732 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; const int N = 100 * 1000 + 5, M = 300 * 1000 + 5; int b[N]; int pos[M]; int c[N]; bool mark[M]; int valid(int n, int a[]) { vector <pair <int, int> > vec; set <int> s; for (int i = 0; i < n; i++) { if (a[i] <= n) { vec.push_back({a[i], i}); } s.insert(a[i]); } if (s.size() != n) { return 0; } int cnt = 0; for (int i = 1; i < vec.size(); i++) { if (vec[i].second - vec[i - 1].second != (vec[i].first - vec[i - 1].first + n) % n) { return 0; } } return 1; } //---------------------- int replacement(int n, int a[], int ans[]) { int maxi = 0, x = -1; for (int i = 0; i < n; i++) { maxi = max(maxi, a[i]); if (x <= n) { x = i; } } if (maxi == n) { return 0; } if (x == -1) { for (int i = 0; i < maxi - n; i++) { ans[i] = 1; } return maxi - n; } else { for (int i = 0; i < n; i++) { b[(i + a[x] - 1) % n] = a[(i + x) % n]; } // int mxpos = 0; for (int i = 0; i < n; i++) { mark[b[i]] = true; pos[b[i]] = i; c[i] = i + 1; // if (b[i] == maxi) { // mxpos = n; // } } for (int i = n + 1; i <= maxi; i++) { if (!mark[b[i]]) { ans[i - n - 1] = c[pos[maxi]]; c[pos[maxi]] = i; } else { ans[i - n - 1] = c[pos[i]]; c[pos[i]] = i; } } return maxi - n; } } //---------------------- int countReplacement(int n, int inputSeq[]) { return -3; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:21:15: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   21 |  if (s.size() != n) {
      |      ~~~~~~~~~^~~~
gondola.cpp:25:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |  for (int i = 1; i < vec.size(); i++) {
      |                  ~~^~~~~~~~~~~~
gondola.cpp:24:6: warning: unused variable 'cnt' [-Wunused-variable]
   24 |  int cnt = 0;
      |      ^~~
#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...