Submission #702151

#TimeUsernameProblemLanguageResultExecution timeMemory
702151mychecksedadGondola (IOI14_gondola)C++17
20 / 100
39 ms4592 KiB
#include <bits/stdc++.h> #include <gondola.h> using namespace std; int valid(int n, int a[]){ map<int, bool> m; for(int i = 0; i < n; ++i){ if(m[a[i]]){ return 0; } m[a[i]] = 1; } int mn = -1; for(int i = 0; i < n; ++i){ if(a[i] <= n){ mn = mn == -1 ? i : (a[mn] < a[i] ? mn : i); } } if(mn == -1) return 1; int s = a[mn]; bool ok = 1; for(int i = mn; i != mn || ok; (i += 1) %= n, s++){ if(s == n + 1) s = 1; ok = 0; if(a[i] <= n && a[i] != s){ return 0; } } return 1; } int replacement(int n, int a[], int r[]){ int l = 0, mn = -1; for(int i = 0; i < n; ++i){ if(a[i] <= n){ mn = mn == -1 ? i : (a[mn] < a[i] ? mn : i); } } if(mn == -1) return 1; int s = a[mn]; bool ok = 1; set<pair<int, int>> S; for(int i = mn; i != mn || ok; (i += 1) %= n, s++){ if(s == n + 1) s = 1; ok = 0; if(a[i] > n){ S.insert({a[i], i}); } } for(int i = n + 1; !S.empty(); ++i){ auto v = *S.begin(); S.erase(S.begin()); while(i < v.first){ r[l] = a[v.second]; a[v.second] = i; l++; i++; } } return l; } int countReplacement(int n, int inputSeq[]){ return -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...