Submission #413960

#TimeUsernameProblemLanguageResultExecution timeMemory
413960dxz05곤돌라 (IOI14_gondola)C++14
25 / 100
38 ms5660 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 3e5 + 2e2; int a[MAXN]; int valid(int n, int inputSeq[]){ for (int i = 0; i < 3 * n; i++) a[i] = inputSeq[i % n]; set<int> s; for (int i = 0; i < n; i++) s.insert(a[i]); if (s.size() != n) return 0; int ind = -1; for (int i = n; i < 2 * n; i++){ if (a[i] <= n){ ind = i; break; } } if (ind == -1) return 1; for (int i = ind - a[ind] + 1; i <= ind - a[ind] + n; i++){ if (a[i] > n) continue; if (a[i] - a[ind] != i - ind) return 0; } return 1; } //---------------------- int orig[MAXN]; int replacement(int n, int gondolaSeq[], int replacementSeq[]){ for (int i = 0; i < n; i++){ a[i] = gondolaSeq[i]; orig[i] = i + 1; } for (int i = 0; i < n; i++){ if (a[i] <= n){ int ind = 1; for (int j = i - a[i] + 1; j <= i - a[i] + n; j++){ orig[(j + n) % n] = ind++; } break; } } set<pair<int, int>> s; for (int i = 0; i < n; i++){ s.insert(make_pair(orig[i], a[i])); } int last = n + 1; int sz = 0; while (!s.empty()){ int cur = s.begin()->first, need = s.begin()->second; s.erase(s.begin()); if (cur == need) continue; replacementSeq[sz++] = cur; while (last < need){ replacementSeq[sz++] = last; last++; } } return sz; } //---------------------- int countReplacement(int n, int inputSeq[]){ return -3; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:16:18: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   16 |     if (s.size() != n) return 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...