제출 #165037

#제출 시각아이디문제언어결과실행 시간메모리
165037kostia244곤돌라 (IOI14_gondola)C++17
55 / 100
47 ms4728 KiB
#include "gondola.h" #include<bits/stdc++.h> #define pb push_back #define all(x) x.begin(), x.end() using namespace std; using ll = long long; using vi = vector<int>; int valid(int n, int a[]) { set<int> x; int p = 0; for(int i = 0; i < n; i++) { if(!x.insert(a[i]).second) return 0; if(a[p]>a[i]) p = i; } if(p>n) return true; int u = a[p]; for(int i = 0; i < n; i++) { if(a[p]<=n&&a[p]!=u) return 0; p = (p+1)%n; u = (u%n)+1; } return 1; } //---------------------- int pos[250250]; int replacement(int n, int a[], int b[]) { memset(pos, -1, sizeof pos); int mp = 0, p = 0; for(int i = 0; i < n; i++) { if(a[i] > n) { pos[a[i]] = i; } if(a[i]>a[mp]) mp=i; if(a[i]<a[p]) p=i; } if(a[mp]<=n) return 0; int M = a[mp], l = 0; if(a[p]>n) a[p] = 1; int u = a[p]; for(int i = 0; i < n; i++) { a[p] = u; p = (p+1)%n; u = (u%n)+1; } for(int i = n+1; i <= M; i++) { if(pos[i]!=-1) { b[l++] = a[pos[i]]; a[pos[i]] = i; } else { b[l++] = a[mp]; a[mp] = i; } } return l; } //---------------------- int countReplacement(int n, int a[]) { return 69; }
#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...