제출 #400990

#제출 시각아이디문제언어결과실행 시간메모리
400990Dan4Life곤돌라 (IOI14_gondola)C++17
20 / 100
50 ms4664 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; int valid(int n, int a[]) { int sm = INT_MAX, pos = -1; map<int,int> M; M.clear(); for(int i = 0; i < n; i++) { M[a[i]]++; if(M[a[i]]>=2)return 0; } for(int i = 0; i < n; i++) if(sm>a[i] and a[i]<=n)sm=a[i], pos=i; if(sm==INT_MAX)return 1; int x = n; while(x--){ if(a[pos]==n and a[(pos+1)%n]<=n and a[(pos+1)%n]!=1)return 0; else if(a[pos]<n and a[(pos+1)%n]<=n and a[pos]!=a[(pos+1)%n]-1) return 0; pos++, pos%=n; } return 1; } int replacement(int n, int a[], int b[]) { map<int,int> M, N; M.clear(), N.clear(); for(int i = 0; i < n; i++) M[a[i]]=1; int x = n; vector<int> v; v.clear(); int pos = min_element(a, a+n)-a; int z = 1; while(x--) N[a[pos]]=z, z++, pos++, pos%=n; sort(a, a+n); x = n; if(a[0]!=1)v.push_back(1); for(int i = n+1; i < a[0]; i++)v.push_back(i); for(int i = 1; i < n; i++) { int num = N[a[i]]; if(num==a[i])continue; v.push_back(num); for(int j = max({a[i-1], num, n})+1; j < a[i]; j++) v.push_back(j); } for(int i = 0; i < (int)v.size(); i++) b[i]=v[i]; return (int)v.size(); } int countReplacement(int n, int a[]) { 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...