Submission #579783

#TimeUsernameProblemLanguageResultExecution timeMemory
5797831ne곤돌라 (IOI14_gondola)C++14
25 / 100
93 ms36980 KiB
#include<bits/stdc++.h> using namespace std; #include "gondola.h" int valid(int n, int inputSeq[]) { int index = -1; for (int i = 0;i<n;++i){ if (inputSeq[i] <=n){ index = i; } } map<int,int>visited; if (index == -1){ for (int i = 0;i<n;++i){ int x = inputSeq[i]; if (visited[x])return 0; visited[x] = true; } return 1; } for (int i = 0;i<n;++i){ int j = (i + index)%n; int temp = inputSeq[index] + i; if (temp > n)temp = temp % n; if (visited[temp] || visited[inputSeq[j]])return 0; visited[temp] = true; visited[inputSeq[j]] = true; } return 1; } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int index = -1; int maxxy = 1; for (int i = 0;i<n;++i){ if (gondolaSeq[i] <=n){ index = i; } maxxy = max(gondolaSeq[i],maxxy); } map<int,int>visited; if (index == -1){ for (int i = 0;i<n;++i){ visited[gondolaSeq[i]] = true; } int cur = 0; for (int i = 1;i<=maxxy;++i){ if (!visited[i])replacementSeq[cur++] = i; } return cur; } int extra = n + 1; for (int i = 0;i<n;++i){ visited[gondolaSeq[i]] = i + 1; } int cur = 0; for (int i = 0;i<n;){ int j = (i + index)%n; int temp = gondolaSeq[index] + i; if (temp > n)temp = temp % n; if (gondolaSeq[j] == temp){ ++i; continue; } if (visited[extra] && extra!=gondolaSeq[j]){ int temp2 = visited[extra] - index; if (temp2 <= 0)temp2+=n; temp2 = gondolaSeq[index] + temp2; if (temp2 > n)temp2 = temp2 % n; replacementSeq[cur++] = temp2; extra++; } else{ replacementSeq[cur++] = temp; while(!visited[extra]){ replacementSeq[cur++] = extra++; } ++i; } } return cur; } //---------------------- 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...