제출 #788652

#제출 시각아이디문제언어결과실행 시간메모리
788652mosiashvililuka죄수들의 도전 (IOI22_prison)C++17
90 / 100
144 ms1932 KiB
#include<bits/stdc++.h> #include "prison.h" using namespace std; int a,b,c,d,e,i,j,ii,jj,zx,xc,s[5009][5009],mid,l,r,MX; vector <pair <int, int> > V[5009]; int fun(int q){ if(q==0) return -1; else return -2; } std::vector<std::vector<int> > devise_strategy(int NN) { a=NN; //sawyisi 0 s[0][0]=0;//A for(i=1; i<=a; i++){ if(i==1){ s[0][i]=-1; continue; } if(i==a){ s[0][i]=-2; continue; } mid=(2+(a-1))/2; if(i<=mid){ s[0][i]=1;MX=max(MX,1); }else{ s[0][i]=2;MX=max(MX,2); } } V[1].push_back({2,a-1}); //1/2+1%2 da 2/2+2%2 //MX=2; for(ii=1; ii<=MX; ii++){ c=ii/2+ii%2; if(c%2==0){ s[ii][0]=0; }else{ s[ii][0]=1; } for(i=1; i<=a; i++){ e=0; for(j=0; j<V[c].size(); j++){ l=V[c][j].first;r=V[c][j].second; if(l-1<=i&&i<=r+1){ e=1;break; } } if(e==0){ s[ii][i]=0;continue; } //l r gaq mid=(l+r)/2; if(ii%2==1){ r=mid; }else{ l=mid+1; } if(i<=l){ s[ii][i]=fun(s[ii][0]); continue; } if(i>=r){ s[ii][i]=fun(1-s[ii][0]); continue; } l++;r--; //MX=max(MX,ii+2); mid=(l+r)/2; if(i<=mid){ s[ii][i]=c*2+1; MX=max(MX,c*2+1); }else{ s[ii][i]=c*2+2; MX=max(MX,c*2+2); } V[c+1].push_back({l,r}); } } vector <vector <int> > ANSA; ANSA.resize(MX+1); for(i=0; i<ANSA.size(); i++){ ANSA[i].resize(a+1); } for(i=0; i<ANSA.size(); i++){ for(j=0; j<=a; j++){ ANSA[i][j]=s[i][j]; } } /*cout<<ANSA.size()<<"\n"; for(i=0; i<ANSA.size(); i++){ for(j=0; j<=a; j++){ cout<<ANSA[i][j]<<" "; } cout<<"\n"; }*/ return ANSA; }

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

prison.cpp: In function 'std::vector<std::vector<int> > devise_strategy(int)':
prison.cpp:42:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |             for(j=0; j<V[c].size(); j++){
      |                      ~^~~~~~~~~~~~
prison.cpp:84:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   84 |     for(i=0; i<ANSA.size(); i++){
      |              ~^~~~~~~~~~~~
prison.cpp:88:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   88 |     for(i=0; i<ANSA.size(); i++){
      |              ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...