제출 #1167566

#제출 시각아이디문제언어결과실행 시간메모리
11675668pete8Chameleon's Love (JOI20_chameleon)C++20
컴파일 에러
0 ms0 KiB
#include "chameleon.h" #include <vector> #include<iostream> #define pb push_back using namespace std; namespace { int variable_example = 1; } // namespace vector<int>adj[1001]; int done[1001],like[1001]; void Solve(int n){ if(n<=50&&0){ for(int i=1;i<=2*n;i++)for(int j=i+1;j<=2*n;j++){ if(Query({i,j})==1){ adj[i].pb(j),adj[j].pb(i); } } } else{ for(int i=1;i<=n;i++){ int last=n; while(1){ int l=last+1,r=2*n,pos=3*n; while(l<=r){ int mid=l+(r-l)/2; vector<int>q; for(int j=last+1;j<=mid;j++)q.pb(j); q.pb(i); if(Query(q)!=(mid-last+1))r=mid-1,pos=min(pos,mid); else l=mid+1; } if(pos==3*n)break; adj[i].pb(pos); adj[pos].pb(i); last=pos; } } } for(int i=1;i<=2*n;i++){ if(done[i])continue; if(adj[i].size()==1){ Answer(i,adj[i][0]); done[i]=1; done[adj[i][0]]=1; continue; } if(adj[i].size()==2)assert(0); vector<int>ask(3,0); for(int j=0;j<3;j++){ vector<int>q={i,adj[i][j],adj[i][(j+1)%3]}; ask[j]=Query(q); } for(int j=0;j<3;j++)if(ask[j]==2&&ask[(j-1+3)%3]==2){ like[i]=adj[i][j]; } } for(int i=1;i<=2*n;i++){ if(done[i])continue; for(int j=0;j<3;j++)if(adj[i][j]!=like[i]&&i!=like[adj[i][j]]&&like[adj[i][j]]){ Answer(i,adj[i][j]); done[adj[i][j]]=1; } } } /* 5 1 0 1 1 1 1 0 0 0 0 3 2 4 1 5 2 1 4 3 5 4 6 5 3 8 2 9 1 10 7 10 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 14 18 19 13 17 20 15 11 16 12 8 3 7 5 9 6 1 10 4 2 */

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

chameleon.cpp: In function 'void Solve(int)':
chameleon.cpp:50:25: error: 'assert' was not declared in this scope
   50 |     if(adj[i].size()==2)assert(0);
      |                         ^~~~~~
chameleon.cpp:4:1: note: 'assert' is defined in header '<cassert>'; did you forget to '#include <cassert>'?
    3 | #include<iostream>
  +++ |+#include <cassert>
    4 | #define pb push_back