Submission #1025356

#TimeUsernameProblemLanguageResultExecution timeMemory
1025356HappyCapybaraGondola (IOI14_gondola)C++17
75 / 100
19 ms4460 KiB
#include "gondola.h" #include<bits/stdc++.h> using namespace std; int valid(int n, int inputSeq[]){ int x = -1; unordered_set<int> s; for (int i=0; i<n; i++){ if (s.find(inputSeq[i]) != s.end()) return 0; s.insert(inputSeq[i]); if (inputSeq[i] <= n){ if (x != -1 && x != inputSeq[i]) return 0; if (x == -1) x = inputSeq[i]; } if (x != -1) x = (x % n) + 1; } return 1; } int replacement(int n, int gondolaSeq[], int replacementSeq[]){ vector<int> v(n); int x = -1; for (int i=0; i<2*n; i++){ if (x != -1){ v[x] = gondolaSeq[i%n]; x = (x+1) % n; } else { if (i == n){ v[0] = gondolaSeq[i%n]; x = 1; } else if (gondolaSeq[i] <= n) x = gondolaSeq[i] % n; } } vector<pair<int,int>> w(n); for (int i=0; i<n; i++) w[i] = {v[i], i+1}; sort(w.begin(), w.end()); int cur = 0, last = n; for (int i=0; i<n; i++){ if (w[i].first == w[i].second) continue; else { replacementSeq[cur] = w[i].second; cur++; last++; while (last != w[i].first){ replacementSeq[cur] = last; cur++; last++; } } } return cur; } int countReplacement(int n, int inputSeq[]){ if (!valid(n, inputSeq)) return 0; int x = 0; priority_queue<int> pq; for (int i=0; i<n; i++){ if (inputSeq[i] > n){ pq.push(-inputSeq[i]); x++; } } long long res = 1; int cur = n+1; while (!pq.empty()){ if (cur == -pq.top()){ pq.pop(); x--; } else res = (res*x) % 1000000009; cur++; } return res; }
#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...