제출 #1283043

#제출 시각아이디문제언어결과실행 시간메모리
1283043MMihalev스핑크스 (IOI24_sphinx)C++20
컴파일 에러
0 ms0 KiB
#include<iostream> #include<vector> #include<cstring> #include<algorithm> #include "sphinx.h" using namespace std; const int MAX_N=252; int n; vector<int>g[MAX_N]; vector<int>exp,ans; int query[2][MAX_N][MAX_N]; bool used[MAX_N]; int depth[MAX_N]; void dfs(int u) { used[u]=1; for(int v:g[u]) { if(used[v])continue; depth[v]=depth[u]+1; dfs(v); } } bool check(int l,int r,bool wh,vector<int>ids,int col) { bool full=1; for(int id:ids) { if(ans[id]==-1)full=0; } if(full)return 0; if(ids.size()==1) { for(int i=0;i<n;i++) { exp[i]=col; } exp[ids[0]]=-1; if(perform_experiment(exp)==1)return 1; return 0; } for(int i=0;i<n;i++)exp[i]=col; for(int id:ids) { exp[id]=-1; } int cnt=perform_experiment(exp); if(query[wh][l][r]==-1) { for(int i=0;i<n;i++)exp[i]=n; for(int id:ids) { exp[id]=-1; } query[wh][l][r]=perform_experiment(exp); } if(cnt<query[wh][l][r]) } std::vector<int> find_colours(int N, std::vector<int> X, std::vector<int> Y) { n=N; exp.resize(n);ans.resize(n); for(int i=0;i<n;i++)ans[i]=-1; memset(query,-1,sizeof(query)); for(int i=0;i<X.size();i++) { g[X[i]].push_back(Y[i]); g[Y[i]].push_back(X[i]); } dfs(0); vector<int>idsodd,idseven; for(int i=0;i<n;i++) { if(depth[i]%2==0) { idseven.push_back(i); } else idsodd.push_back(i); } while(1); /// for(int col=0;col<n;col++) { while(1) { bool full=1; for(int id:idseven) { if(ans[id]==-1)full=0; } if(full)break; if(check(0,idseven.size()-1,0,idseven,col))rec(0,idseven,col); } while(1) { bool full=1; for(int id:idsodd) { if(ans[id]==-1)full=0; } if(full)break; if(check(0,idsodd.size()-1,1,idsodd,col))rec(1,idsodd,col); } } return ans; }

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

sphinx.cpp:10:12: warning: built-in function 'exp' declared as non-function [-Wbuiltin-declaration-mismatch]
   10 | vector<int>exp,ans;
      |            ^~~
sphinx.cpp: In function 'bool check(int, int, bool, std::vector<int>, int)':
sphinx.cpp:65:1: error: expected primary-expression before '}' token
   65 | }
      | ^
sphinx.cpp: In function 'std::vector<int> find_colours(int, std::vector<int>, std::vector<int>)':
sphinx.cpp:105:56: error: 'rec' was not declared in this scope
  105 |             if(check(0,idseven.size()-1,0,idseven,col))rec(0,idseven,col);
      |                                                        ^~~
sphinx.cpp:117:54: error: 'rec' was not declared in this scope
  117 |             if(check(0,idsodd.size()-1,1,idsodd,col))rec(1,idsodd,col);
      |                                                      ^~~
sphinx.cpp: In function 'bool check(int, int, bool, std::vector<int>, int)':
sphinx.cpp:64:26: warning: control reaches end of non-void function [-Wreturn-type]
   64 |     if(cnt<query[wh][l][r])
      |            ~~~~~~~~~~~~~~^