Submission #70079

#TimeUsernameProblemLanguageResultExecution timeMemory
70079zubec곤돌라 (IOI14_gondola)C++14
20 / 100
24 ms6552 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; const int N = 100100; int a[N]; int valid(int n, int inputSeq[]){ map<int, int> mp1; map<int, int> used, used2; for (int i = 1; i <= n; i++){ a[i] = inputSeq[i-1]; if (a[i] > n){ if (++mp1[a[i]] > 1) return 0; } } a[n+1] = a[1]; int prev = 0; for (int i = 1; i <= n; i++){ if (used.find(a[i+1]) != used.end()) a[i+1] = used[a[i+1]]; if (a[i] > n) continue; if (a[i+1] > n){ if (a[i] == n){ if (used2.find(1) != used2.end()) return 0; used[a[i+1]] = 1; used2[1] = a[i+1]; a[i+1] = 1; } else { if (used2.find(a[i]+1) != used2.end()) return 0; used[a[i+1]] = a[i]+1; used2[a[i]+1] = a[i+1]; a[i+1] = a[i]+1; } } else { if (a[i] == n){ if (a[i+1] != 1) return 0; } else { if (a[i+1] != a[i] + 1) return 0; } } } for (int i = n+1; i > 1; i--){ if (used.find(a[i-1]) != used.end()) a[i-1] = used[a[i-1]]; if (a[i] > n) continue; if (a[i-1] > n){ if (a[i] == 1){ if (used2.find(n) != used2.end()) return 0; used[a[i-1]] = n; used2[n] = a[i-1]; a[i-1] = n; } else { if (used2.find(a[i]-1) != used2.end()) return 0; used[a[i-1]] = a[i]-1; used2[a[i]-1] = a[i-1]; a[i-1] = a[i]-1; } } else { if (a[i] == 1){ if (a[i-1] != n) return 0; } else { if (a[i-1] != a[i] - 1) return 0; } } } return 1; } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]){ return -2; } //---------------------- int countReplacement(int n, int inputSeq[]){ return -3; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:21:9: warning: unused variable 'prev' [-Wunused-variable]
     int prev = 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...