Submission #584838

#TimeUsernameProblemLanguageResultExecution timeMemory
584838BelguteiGondola (IOI14_gondola)C++17
55 / 100
31 ms5180 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define ff first #define ss second #define pb push_back #define mk make_pair #define MOD 1000000007 #define MOD1 1000000009 const int N = 100005; map<int,int> mp; map<int,int> :: iterator it; int valid(int n, int inputSeq[]) { mp.clear(); int pos = -1; for(int i = 0; i < n; i ++) { if(inputSeq[i] <= n) { pos = i; } mp[inputSeq[i]] ++; } for(it = mp.begin(); it != mp.end(); it ++) { if(it -> ss > 1) { return 0; } } if(pos == -1) return 1; int val = inputSeq[pos]; for(int i = pos + 1; i < n; i ++) { val ++; if(val == n + 1) val = 1; if(inputSeq[i] <= n && inputSeq[i] != val) return 0; } for(int i = 0; i < pos; i ++) { val ++; if(val == n + 1) val = 1; if(inputSeq[i] <= n && inputSeq[i] != val) return 0; } // return 1; } //---------------------- vector<pair<int,int> > v; int a[N], ans; int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int pos = -1; for(int i = 0; i < n; i ++) { if(gondolaSeq[i] > n) { v.pb({gondolaSeq[i], i}); } else { pos = i; } } if(pos != -1) { int cur_pos = pos + 1; int cur_val = gondolaSeq[pos]; if(cur_pos == n) cur_pos = 0; while(cur_pos != pos) { cur_val ++; if(cur_val == n + 1) cur_val = 1; a[cur_pos] = cur_val; cur_pos ++; if(cur_pos == n) cur_pos = 0; } // } else { for(int i = 0; i < n; i ++) { a[i] = i + 1; } } sort(v.begin(), v.end()); for(int i = v.size() - 1; i >= 0; i --) { if(i == 0) { for(int j = v[i].ff - 1; j > n; j --) { replacementSeq[ans] = j; ans ++; } } else { for(int j = v[i].ff - 1; j > v[i - 1].ff ; j --) { replacementSeq[ans] = j; ans ++; } } replacementSeq[ans] = a[v[i].ss]; ans ++; } ans --; for(int i = 0; i <= ans / 2; i ++) { swap(replacementSeq[i], replacementSeq[ans - i]); } ans ++; return ans; } //---------------------- int countReplacement(int n, int inputSeq[]) { return -3; }
#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...