제출 #1198055

#제출 시각아이디문제언어결과실행 시간메모리
1198055njoopGondola (IOI14_gondola)C++20
55 / 100
16 ms2776 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; int valid(int n, int inputSeq[]) { int st=0, mn=1e9; vector<int> v; for(int i=0; i<n; i++) { v.push_back(inputSeq[i]); if(inputSeq[i] <= n && inputSeq[i] < mn) { mn = inputSeq[i]; st = i; } } sort(v.begin(), v.end()); for(int i=1; i<n; i++) { if(v[i] == v[i-1]) return 0; } if(mn == 1e9) return 1; for(int i=st; i<n; i++) { if(inputSeq[i] <= n && inputSeq[i] != mn) return 0; mn++; } for(int i=0; i<st; i++) { if(inputSeq[i] <= n && inputSeq[i] != mn) return 0; mn++; } return 1; } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int oriSeq[n], pos=1, val=1, idx=0; priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq; priority_queue<int> avai; map<int, int> mp; for(int i=0; i<n; i++) { if(gondolaSeq[i] <= n) { pos = i; val = gondolaSeq[i]; } else { pq.push({gondolaSeq[i], i}); avai.push(i); } } for(int i=pos; i<n; i++) { oriSeq[i] = val; val++; if(val > n) val -= n; } for(int i=0; i<pos; i++) { oriSeq[i] = val; val++; if(val > n) val -= n; } for(int i=n+1; pq.size(); i++) { if(i == pq.top().first) { replacementSeq[idx] = oriSeq[pq.top().second]; oriSeq[pq.top().second] = i; pq.pop(); idx++; mp[pq.top().second] = 1; } else { while(avai.size() && mp[avai.top()]) avai.pop(); if(avai.empty()) return idx; replacementSeq[idx] = oriSeq[avai.top()]; oriSeq[avai.top()] = i; idx++; } } return idx; } //---------------------- 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...