제출 #335634

#제출 시각아이디문제언어결과실행 시간메모리
335634Bill_00JOIRIS (JOI16_joiris)C++14
100 / 100
66 ms492 KiB
#include <bits/stdc++.h> #define ff first #define ss second #define pb push_back #define pp push #define mp make_pair #define MOD 1000000007 #define INF 1000000000 typedef long long ll; using namespace std; int a[51]; vector<int>s[51]; int c[51]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,k; cin >> n >> k; for(int i=1;i<=n;i++){ cin >> a[i]; } for(int i=1;i<=n-k+1;i++){ for(int j=i;j<=i+k-1;j++){ s[j].pb(i); } } for(int i=0;i<k;i++){ c[1]=i; int height=(i+a[1])%k; for(int j=2;j<=n-k+1;j++){ int sum=0; for(int p=0;p<(s[j].size()-1);p++){ sum+=c[s[j][p]]; } c[j]=((height-a[j]-sum)%k+k)%k; } int flag=0; for(int j=n-k+2;j<=n;j++){ int sum=0; for(int p=0;p<s[j].size();p++){ sum+=c[s[j][p]]; } if(height!=((sum+a[j])%k)){ flag++; break; } } if(!flag){ // for(int j=1;j<=n-k+1;j++) cout << c[j] << ' '; vector<pair<int,int> >ans; for(int j=1;j<=n-k+1;j++){ for(int p=1;p<=c[j];p++){ int mx=0; for(int u=j;u<=j+k-1;u++){ mx=max(a[u],mx); } ans.pb(mp(2,j)); for(int u=1;u<=n;u++){ if(u>=j && u<=j+k-1) continue; if(a[u]<=mx){ // cout << mx << "KKk"; while(a[u]<=mx){ a[u]+=(k); ans.pb(mp(1,u)); } } a[u]--; } } } int mx=0; for(int j=1;j<=n;j++){ mx=max(mx,a[j]); } for(int j=1;j<=n;j++){ for(int p=1;p<=(mx-a[j])/k;p++){ ans.pb(mp(1,j)); } } cout << ans.size() << '\n'; for(int i=0;i<ans.size();i++){ cout << ans[i].ff << ' ' << ans[i].ss << '\n'; } return 0; } } cout << -1; }

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

joiris.cpp: In function 'int main()':
joiris.cpp:33:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |    for(int p=0;p<(s[j].size()-1);p++){
      |                ~^~~~~~~~~~~~~~~~
joiris.cpp:41:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |    for(int p=0;p<s[j].size();p++){
      |                ~^~~~~~~~~~~~
joiris.cpp:82: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]
   82 |    for(int i=0;i<ans.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...