제출 #923679

#제출 시각아이디문제언어결과실행 시간메모리
923679alexander707070카멜레온의 사랑 (JOI20_chameleon)C++14
0 / 100
27 ms500 KiB
#include <bits/stdc++.h> #include "chameleon.h" #define MAXN 1007 using namespace std; namespace { int n,bad[MAXN]; vector<int> to[MAXN]; vector< pair<int,int> > sol; vector<int> l,r,w,perm; void bin(){ for(int curr:l){ int lt=0,rt=n+1,mid,st=0; while(lt+1<rt){ mid=(lt+rt)/2; w.clear(); for(int f=st;f<mid;f++)w.push_back(r[f]); w.push_back(curr); if(Query(w)!=w.size()){ rt=mid; }else{ lt=mid; } } if(rt!=n+1)to[curr].push_back(r[rt-1]); lt=st=rt; rt=n+1; while(lt+1<rt){ mid=(lt+rt)/2; w.clear(); for(int f=st;f<mid;f++)w.push_back(r[f]); w.push_back(curr); if(Query(w)!=w.size()){ rt=mid; }else{ lt=mid; } } if(rt!=n+1)to[curr].push_back(r[rt-1]); lt=st=rt; rt=n+1; while(lt+1<rt){ mid=(lt+rt)/2; w.clear(); for(int f=st;f<mid;f++)w.push_back(r[f]); w.push_back(curr); if(Query(w)!=w.size()){ rt=mid; }else{ lt=mid; } } if(rt!=n+1)to[curr].push_back(r[rt-1]); } for(int curr:r){ int lt=0,rt=n+1,mid,st=0; while(lt+1<rt){ mid=(lt+rt)/2; w.clear(); for(int f=st;f<mid;f++)w.push_back(l[f]); w.push_back(curr); if(Query(w)!=w.size()){ rt=mid; }else{ lt=mid; } } if(rt!=n+1)to[curr].push_back(l[rt-1]); lt=st=rt; rt=n+1; while(lt+1<rt){ mid=(lt+rt)/2; w.clear(); for(int f=st;f<mid;f++)w.push_back(l[f]); w.push_back(curr); if(Query(w)!=w.size()){ rt=mid; }else{ lt=mid; } } if(rt!=n+1)to[curr].push_back(l[rt-1]); lt=st=rt; rt=n+1; while(lt+1<rt){ mid=(lt+rt)/2; w.clear(); for(int f=st;f<mid;f++)w.push_back(l[f]); w.push_back(curr); if(Query(w)!=w.size()){ rt=mid; }else{ lt=mid; } } if(rt!=n+1)to[curr].push_back(l[rt-1]); } } } // namespace void Solve(int N) { n=N; for(int i=1;i<=n;i++)l.push_back(i); for(int i=n+1;i<=2*n;i++)r.push_back(i); bin(); for(int i=1;i<=2*n;i++){ if(to[i].size()==1)continue; else{ if(Query({i,to[i][0],to[i][1]})==1)bad[i]=to[i][2]; else if(Query({i,to[i][0],to[i][2]})==1)bad[i]=to[i][1]; else if(Query({i,to[i][2],to[i][1]})==1)bad[i]=to[i][0]; } } for(int i=1;i<=2*n;i++){ for(int f:to[i]){ if(bad[i]==f or bad[f]==i)continue; if(i<f)Answer(i,f); } } } /* 4 1 0 1 0 0 1 1 0 4 4 1 2 1 2 3 3 4 3 8 7 6 5 2 1 */

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

chameleon.cpp: In function 'void {anonymous}::bin()':
chameleon.cpp:27:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |             if(Query(w)!=w.size()){
      |                ~~~~~~~~^~~~~~~~~~
chameleon.cpp:44:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |             if(Query(w)!=w.size()){
      |                ~~~~~~~~^~~~~~~~~~
chameleon.cpp:61:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |             if(Query(w)!=w.size()){
      |                ~~~~~~~~^~~~~~~~~~
chameleon.cpp:81:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   81 |             if(Query(w)!=w.size()){
      |                ~~~~~~~~^~~~~~~~~~
chameleon.cpp:98:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   98 |             if(Query(w)!=w.size()){
      |                ~~~~~~~~^~~~~~~~~~
chameleon.cpp:115:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  115 |             if(Query(w)!=w.size()){
      |                ~~~~~~~~^~~~~~~~~~
#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...