제출 #919461

#제출 시각아이디문제언어결과실행 시간메모리
919461Gwynbleidd_동굴 (IOI13_cave)C++14
100 / 100
391 ms848 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; int n; vector<int> a, flip, pos; int comb(){ int q[n]; for(int i=0;i<n;i++) q[i]=a[i]; return tryCombination(q); } void answer(){ int f[n], p[n]; for(int i=0;i<n;i++) f[i]=flip[i], p[i]=pos[i]; answer(f,p); } void exploreCave(int N) { n=N; flip.assign(n,-1); pos.assign(n,-1); a.assign(n,0); for(int t=0;t<n;t++){ vector<int> ind; for(int i=0;i<n;i++){ if(flip[i]==-1){ ind.push_back(i); } else{ a[i]=flip[i]; } } if(!ind.size()){ break; } int last=comb(); while(ind.size()>1){ vector<int> l,r; for(int i=0;i<ind.size();i++){ if(i<ind.size()/2){ l.push_back(ind[i]); } else{ r.push_back(ind[i]); } } for(auto &x:l){ a[x]=1-a[x]; } int x=comb(); if(last==-1){ swap(ind,l); last=x; } else if(last==x){ swap(ind,r); } else if(x==-1||x>last){ for(auto &x:l){ a[x]=1-a[x]; } swap(ind,l); } else{ swap(ind,l); last=x; } } if(last==-1){ flip[ind[0]]=a[ind[0]]; a[ind[0]]=1-a[ind[0]]; pos[ind[0]]=comb(); } else{ flip[ind[0]]=1-a[ind[0]]; pos[ind[0]]=last; } } answer(); }

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

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:43:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |             for(int i=0;i<ind.size();i++){
      |                         ~^~~~~~~~~~~
cave.cpp:44:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |                 if(i<ind.size()/2){
      |                    ~^~~~~~~~~~~~~
#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...