제출 #921432

#제출 시각아이디문제언어결과실행 시간메모리
921432Nika533곤돌라 (IOI14_gondola)C++17
60 / 100
28 ms4748 KiB
#pragma GCC diagnostic warning "-std=c++11" #include <bits/stdc++.h> #include "gondola.h" #define pb push_back #define f first #define s second #define MOD 1000000007 #define flush fflush(stdout) #define all(x) (x).begin(),(x).end() #define allr(x) (x).rbegin(), (x).rend() #define pii pair<int,int> using namespace std; int n,m,T,k; int valid(int n, int inputSeq[]) { int ind=-1; map<int,int> mymap; for (int i=0; i<n; i++) { mymap[inputSeq[i]]++; if (inputSeq[i]<=n) ind=i; } for (auto x:mymap) { if (x.s>1) return 0; } if (ind==-1) return 1; for (int i=ind+1; i<n+ind; i++) { if (inputSeq[(i%n)]>n) { inputSeq[(i%n)]=inputSeq[((i-1)%n)]+1; } } int cnt=0; for (int i=1; i<n; i++) { if (inputSeq[i]<inputSeq[i-1]) cnt++; if (inputSeq[i]>n) return 0; } return (cnt<=1); } int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int mx=0; vector<pii> v; int j=0,diff=0; for (int i=0; i<n; i++) { if (gondolaSeq[i]<=n) { diff=(i+n-gondolaSeq[i])%n; } } for (int i=0; i<n; i++) { int val; if (diff>=i) val=diff-i; else val=diff+n-i; val=n-val; if (gondolaSeq[i]>n) v.pb({gondolaSeq[i],val}); } int ind=0,cur=n+1; sort(all(v)); for (int j=0; j<v.size(); j++) { replacementSeq[ind]=v[j].s; ind++; for (int o=cur; o<v[j].f; o++) { replacementSeq[ind]=o; ind++; } cur=v[j].f+1; } return ind; } int countReplacement(int n, int inputSeq[]) { int arr[n]; for (int i=0; i<n; i++) arr[i]=inputSeq[i]; if (!valid(n,arr)) return 0; int mx=0,mn=1e9; vector<int> v; for (int i=0; i<n; i++) { mx=max(mx,inputSeq[i]); mn=min(mn,inputSeq[i]); if (inputSeq[i]>n) { v.pb(inputSeq[i]); } } int ans=1; if (mn>n) { for (int i=1; i<=n; i++) { ans*=i; ans%=MOD; } } int cur=n,val=v.size(); sort(all(v)); for (int j=0; j<v.size(); j++) { for (int i=cur+1; i<v[j]; i++) { ans*=val; ans%=MOD; } cur=v[j]; val--; } return ans; }

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

gondola.cpp:1:32: warning: '-std=c++11' is not an option that controls warnings [-Wpragmas]
    1 | #pragma GCC diagnostic warning "-std=c++11"
      |                                ^~~~~~~~~~~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:59:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |  for (int j=0; j<v.size(); j++) {
      |                ~^~~~~~~~~
gondola.cpp:42:6: warning: unused variable 'mx' [-Wunused-variable]
   42 |  int mx=0;
      |      ^~
gondola.cpp:44:6: warning: unused variable 'j' [-Wunused-variable]
   44 |  int j=0,diff=0;
      |      ^
gondola.cpp: In function 'int countReplacement(int, int*)':
gondola.cpp:91:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   91 |   for (int j=0; j<v.size(); j++) {
      |                 ~^~~~~~~~~
#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...