제출 #625891

#제출 시각아이디문제언어결과실행 시간메모리
625891as111곤돌라 (IOI14_gondola)C++14
10 / 100
18 ms636 KiB
#include "gondola.h" #include <iostream> #include <set> #include <algorithm> #define MAXN 100000 using namespace std; int valid(int n, int inputSeq[]) { for (int i = 1; i < n; i++) { if (inputSeq[i] < n) { if (inputSeq[i] != inputSeq[i-1] + 1) { return 0; } } else { inputSeq[i] = inputSeq[i - 1] + 1; inputSeq[i] %= n; } } sort(inputSeq, inputSeq + n); for (int i = 1; i < n; i++) { if (inputSeq[i - 1] == inputSeq[i]) { return 0; } } return 1; } int og[MAXN + 1]; // original order set<pair<int, int>> Q; // Q gondolas above n least to greatest int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int start = 0; // pos of 1 in the sequence for (int i = 0; i < n; i++) { if (gondolaSeq[i] <= n) { start = i + (n - gondolaSeq[i] + 1); // pos of 1 start %= n; // keep in bounds of array break; } } for (int i = 0; i < n; i++) { og[i] = n + 1 + (i - start); og[i] %= n; if (gondolaSeq[i] > n) { Q.insert(make_pair(gondolaSeq[i], i)); } } int curr = n; set<pair<int, int>>::iterator it; for (it = Q.begin(); it != Q.end(); it++) { pair<int, int> a = *it; while (curr < a.first) { replacementSeq[curr - n] = og[a.second]; cout << replacementSeq[curr - n] << endl; curr++; og[a.second] = curr; } } return curr-n; } int countReplacement(int n, int inputSeq[]) { return 0; }
#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...