제출 #1086945

#제출 시각아이디문제언어결과실행 시간메모리
1086945MateiKing80동굴 (IOI13_cave)C++14
컴파일 에러
0 ms0 KiB
#include "cave.h" #include <bits/stdc++.h> using namespace std; using pii = pair<int, int>; #define fr first #define sc second vector<int> ss, dd; int n; /* void init() { cin >> n; ss.resize(n); dd.resize(n); for(int i = 0; i < n; i ++) cin >> ss[i]; for(int i = 0; i < n; i ++) cin >> dd[i]; } void answer(vector<int> s, vector<int> d) { bool ok = true; for(int i = 0; i < n; i ++) if(s[i] != ss[i] || d[i] != dd[i]) ok = false; cout << (int)ok << '\n'; for(auto i : s) cout << i << " "; cout << '\n'; for(auto i : d) cout << i << " "; cout << '\n'; } int tryCombination(vector<int> s) { //cout << "get in there\n"; vector<int> bn(n); int minn = 2e5; for(int i = 0; i < n; i ++) if(s[i] != ss[i]) minn = min(minn, dd[i]); if(minn == 2e5) return -1; return minn; } */ int ntc(vector<int> v) { //return tryCombination(v); int mad[5000], sus = 0; for(auto i : v) mad[sus ++] = i; return tryCombination(mad); } void nan(vector<int> v, vector<int> w) { //answer(v, w); int mad[5000], sus = 0; for(auto i : v) mad[sus ++] = i; sus = 0; int ultra[5000]; for(auto i : w) ultra[sus ++] = i; answer(mad, ultra); } void exploreCave(int N) { //init(); n = N; const int lg = (int)log2(n); vector<pii> ans; vector<bool> f(n, false); for(int i = 0; i < n; i ++) { vector<int> sus; for(int j = 0; j < n; j ++) sus.push_back(1); for(auto j : ans) sus[j.fr] = j.sc; /*for(auto j : sus) cout << j << " "; cout << '\n'; //int x; cout << ntc(sus) << '\n'; cout << ntc(sus) << '\n'; cout << ntc(sus) << '\n'; cout << ntc(sus) << '\n'; cout << ntc(sus) << '\n'; cout << ntc(sus) << '\n';*/ int x = ntc(sus); //cout << x;// << " " << i << '\n'; bool turip; if(x == i) turip = 1; else turip = 0; //cout << "Crash afterwards\n"; int pas = 1 << lg, pos = -1; while(pas) { //cout << "Morb?\n"; vector<int> di(n, 1); for(int j = 0; j <= min(n - 1, pos + pas); j ++) di[j] = 0; for(auto j : ans) di[j.fr] = j.sc; bool nturip = (ntc(di) == i); if(nturip == turip) pos += pas; pas /= 2; } pos ++; //cout << pos << '\n'; if(turip) ans.push_back({pos, 0}); else ans.push_back({pos, 1}); } vector<int> s(n), d(n); int sus = 0; for(auto i : ans) s[i.fr] = i.sc, d[i.fr] = pos ++; nan(s, d); } /* 4 0 0 1 0 3 1 0 2 */

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

cave.cpp: In function 'void exploreCave(int)':
cave.cpp:130:35: error: 'pos' was not declared in this scope; did you mean 'pow'?
  130 |         s[i.fr] = i.sc, d[i.fr] = pos ++;
      |                                   ^~~
      |                                   pow
cave.cpp:128:9: warning: unused variable 'sus' [-Wunused-variable]
  128 |     int sus = 0;
      |         ^~~