제출 #547231

#제출 시각아이디문제언어결과실행 시간메모리
547231Hanksburger곤돌라 (IOI14_gondola)C++17
90 / 100
19 ms3424 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; const long long mod=1000000009; int sorted[100005], pos[250005], cnt[250005]; vector<int> vec; int valid(int n, int a[]) { for (int i=0; i<n; i++) sorted[i]=a[i]; sort(sorted, sorted+n); for (int i=1; i<n; i++) if (sorted[i-1]==sorted[i]) return 0; for (int i=0; i<n; i++) { if (a[i]<=n) { for (int j=i+1; j<i+n; j++) if (a[j%n]<=n && a[j%n]!=(a[i]+j-i-1)%n+1) return 0; return 1; } } return 1; } int replacement(int n, int a[], int b[]) { int num=1, maxi=n; for (int i=0; i<n; i++) { if (a[i]<=n) { num=(n+a[i]-i-1)%n+1; break; } } for (int i=0; i<n; i++) { maxi=max(maxi, a[i]); pos[a[i]]=i+1; } for (int i=n+1; i<=maxi; i++) { int index=i; while (!pos[i]) i++; vec.push_back((num+pos[i]-2)%n+1); for (int j=index; j<i; j++) vec.push_back(j); } for (int i=0; i<vec.size(); i++) b[i]=vec[i]; return vec.size(); } int countReplacement(int n, int a[]) { if (!valid(n, a)) return 0; int num=0, maxi=n; long long ans=1; for (int i=0; i<n; i++) { if (a[i]<=n) { num=(n+a[i]-i-1)%n+1; break; } } if (!num) { ans=n; num=1; } for (int i=0; i<n; i++) { maxi=max(maxi, a[i]); pos[a[i]]=i+1; } for (int i=maxi; i>n; i--) { if (pos[i]) cnt[i]=cnt[i+1]+1; else { cnt[i]=cnt[i+1]; ans=(ans*cnt[i])%mod; } } return ans; }

컴파일 시 표준 에러 (stderr) 메시지

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:52:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |  for (int i=0; i<vec.size(); i++)
      |                ~^~~~~~~~~~~
#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...