Submission #1018869

#TimeUsernameProblemLanguageResultExecution timeMemory
1018869amine_arouaGondola (IOI14_gondola)C++17
55 / 100
33 ms5260 KiB
#include "gondola.h" #include<bits/stdc++.h> #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #pragma GCC target("avx2") using namespace std; int valid(int n, int inputSeq[]) { bool acc = 1; set<int> s; for(int i = 0 ; i< n ; i++) { inputSeq[i]--; s.insert(inputSeq[i]); if(inputSeq[i] < n) acc = 0; } if((int)s.size() != n) return 0; if(acc) return 1; for(int i = 0 ; i < n ; i++) { if(inputSeq[i] < n) { int j = i; int ok = 1; do { j = (j + 1) % n; if (inputSeq[j] >= n) continue; if (inputSeq[j] != (inputSeq[i] + j - i + n) % n) { ok = 0; break; } } while(i != j); return ok; } } } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]) { vector<pair<int, int>> s; vector<int> perm(n); for(int i = 0 ; i < n ; i++) perm[i] = i; for(int i = 0 ; i < n ; i++) gondolaSeq[i]--; for(int i = 0 ; i < n ; i++) { if(gondolaSeq[i] >= n) continue; perm[i] = gondolaSeq[i]; int j = i; do { j = (j + 1)%n; perm[j] = (gondolaSeq[i] + j - i + n)%n; } while (i != j); break; } for(int i = 0 ; i < n ; i++) { if(gondolaSeq[i] >= n) s.push_back({gondolaSeq[i] , i}); } sort(s.begin() , s.end()); int t = 0; int cnt = n - 1; for(auto [x , i] : s) { int last = perm[i]; while (cnt < x) { cnt++; replacementSeq[t++] = last + 1; assert(t <= 250000); last = cnt; } } return t; } //---------------------- int countReplacement(int n, int inputSeq[]) { return -3; } //int main() //{ // int n = 100000; // int v[n]; // int f[1000000]; // for(int i = 0 ; i < n ; i++) // { // v[i] = rand()%250000 + 1; // } // cout<<replacement(n , v , f); //}

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:10:14: warning: control reaches end of non-void function [-Wreturn-type]
   10 |     set<int> s;
      |              ^
#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...