Submission #370572

#TimeUsernameProblemLanguageResultExecution timeMemory
370572FystyCave (IOI13_cave)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include "cave.h" using namespace std; typedef long long ll; typedef pair<ll,ll> pll; #define rep(i,n) for(int i=0;i<n;i++) #define rep1(i,n) for(int i=1;i<n;i++) #define F first #define S second #define pb push_back //int tryCombination(vector<int> S); //void answer(vector<int> S,vector<int> D); bool vis[5005]; void exploreCave(int N) { int n=N; vector<int> a(n,0),d(n),s(n); rep(i,n) { bool x=0; if(tryCombination(a)==i) x=1; vector<int> tmp=a,pos; if(x) { rep(i,n) if(!vis[i]) tmp[i]=1; } rep(i,n) if(!vis[i]) pos.pb(i); int l=0,r=pos.size()-1; while(l<r) { int mid=l+r>>1; vector<int> tmp2=tmp; for(int j=l;j<=mid;j++) { if(x) tmp2[pos[j]]=0; else tmp2[pos[j]]=1; } if(tryCombination(tmp2)==i) r=mid; else l=mid+1; } vis[l]=1; s[l]=x; d[l]=i; a[l]=s[l]; } answer(s,d); }

Compilation message (stderr)

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:21:27: error: cannot convert 'std::vector<int>' to 'int*'
   21 |         if(tryCombination(a)==i) x=1;
      |                           ^
      |                           |
      |                           std::vector<int>
In file included from cave.cpp:2:
cave.h:8:24: note:   initializing argument 1 of 'int tryCombination(int*)'
    8 | int tryCombination(int S[]);
      |                    ~~~~^~~
cave.cpp:31:22: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   31 |             int mid=l+r>>1;
      |                     ~^~
cave.cpp:38:31: error: cannot convert 'std::vector<int>' to 'int*'
   38 |             if(tryCombination(tmp2)==i) r=mid;
      |                               ^~~~
      |                               |
      |                               std::vector<int>
In file included from cave.cpp:2:
cave.h:8:24: note:   initializing argument 1 of 'int tryCombination(int*)'
    8 | int tryCombination(int S[]);
      |                    ~~~~^~~
cave.cpp:46:12: error: cannot convert 'std::vector<int>' to 'int*'
   46 |     answer(s,d);
      |            ^
      |            |
      |            std::vector<int>
In file included from cave.cpp:2:
cave.h:9:17: note:   initializing argument 1 of 'void answer(int*, int*)'
    9 | void answer(int S[], int D[]);
      |             ~~~~^~~