Submission #1018855

#TimeUsernameProblemLanguageResultExecution timeMemory
1018855amine_arouaGondola (IOI14_gondola)C++17
35 / 100
1094 ms5172 KiB
#include "gondola.h" #include<bits/stdc++.h> 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]--; if(gondolaSeq[i] >= n) s.push_back({gondolaSeq[i] , i}); else { perm[i] = gondolaSeq[i]; int j = i; do { j = (j + 1)%n; perm[j] = (gondolaSeq[i] + j - i + n)%n; } while (i != j); } } 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; }

Compilation message (stderr)

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