제출 #120802

#제출 시각아이디문제언어결과실행 시간메모리
120802shashwatchandra동굴 (IOI13_cave)C++17
컴파일 에러
0 ms0 KiB
/*input */ #include<bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #include "cave.h" using namespace std; using namespace __gnu_pbds; #define int long long #define double long double #define f first #define s second #define mp make_pair #define pb push_back #define RE(i,n) for (int i = 1; i <= n; i++) #define RED(i,n) for (int i = n; i > 0; i--) #define REPS(i,n) for(int i = 1; (i*i) <= n; i++) #define REP(i,n) for (int i = 0; i < (int)n; i++) #define FOR(i,a,b) for (int i = a; i < b; i++) #define REPD(i,n) for (int i = n-1; i >= 0; i--) #define FORD(i,a,b) for (int i = a; i >= b; i--) #define all(v) v.begin(),v.end() #define pii pair<int,int> #define vi vector<int> #define vvi vector<vi> #define print(arr) for (auto it = arr.begin(); it != arr.end(); ++it) cout << *it << " "; cout << endl; #define debug(x) cout << x << endl; #define debug2(x,y) cout << x << " " << y << endl; #define debug3(x,y,z) cout << x << " " << y << " " << z << endl; typedef tree< int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; const int INF = 1e18+1; const int MOD = 1e9+7; const double PI = 3.14159265358979323846264338; int raise(int a,int n,int m = MOD){ if(n == 0)return 1; if(n == 1)return a; int x = 1; x *= raise(a,n/2,m); x %= m; x *= x; x %= m; if(n%2)x*= a; x %= m; return x; } int floor1(int n,int k){ if(n%k == 0 || n >= 0)return n/k; return (n/k)-1; } int ceil1(int n,int k){ return floor1(n+k-1,k); } void flip(int till){ REP(i,till){ if(!stick[i])cur[i] ^= 1; } } void exploreCave(int N){ int stick[N]; int cur[N]; int door[N]; int aux[N]; REP(i,N){ stick[i] = 0; cur[i] = 0; } int find = 0; while(find < N){ int rightnow = tryCombination(cur); int lo = 0; int hi = N-1; if(rightnow > find){ //look for first i such that rightnow becomes find while(lo < hi){ int mid = (lo+hi)/2; REP(i,mid+1){ if(!stick[i])aux[i] = cur[i]^1; } int lookwhatyoumademedo = tryCombination(aux); if(lookwhatyoumademedo == find)hi = mid; else lo = mid+1; } } else{ // look for first i such that rightnow becomes more than find while(lo < hi){ int mid = (lo+hi)/2; REP(i,mid+1){ if(!stick[i])aux[i] = cur[i]^1; } int lookwhatyoumademedo = tryCombination(aux); if(lookwhatyoumademedo > find)hi = mid; else lo = mid+1; } } //now lo'th switch corresponds to door find door[lo] = find; stick[lo] = 1; REP(i,lo+1){ if(!stick[i])aux[i] = cur[i]^1; } find++; } answer(cur,door); } signed main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); //freopen(".in","r",stdin);freopen(".out","w",stdout); int t = 1; //cin >> t; while(t--){ solve(); } return 0; }

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

cave.cpp: In function 'void flip(long long int)':
cave.cpp:72:7: error: 'stick' was not declared in this scope
   if(!stick[i])cur[i] ^= 1;
       ^~~~~
cave.cpp:72:7: note: suggested alternative: 'stime'
   if(!stick[i])cur[i] ^= 1;
       ^~~~~
       stime
cave.cpp:72:16: error: 'cur' was not declared in this scope
   if(!stick[i])cur[i] ^= 1;
                ^~~
cave.cpp: In function 'void exploreCave(long long int)':
cave.cpp:87:36: error: cannot convert 'long long int*' to 'int*' for argument '1' to 'int tryCombination(int*)'
   int rightnow = tryCombination(cur);
                                    ^
cave.cpp:97:49: error: cannot convert 'long long int*' to 'int*' for argument '1' to 'int tryCombination(int*)'
     int lookwhatyoumademedo = tryCombination(aux);
                                                 ^
cave.cpp:109:49: error: cannot convert 'long long int*' to 'int*' for argument '1' to 'int tryCombination(int*)'
     int lookwhatyoumademedo = tryCombination(aux);
                                                 ^
cave.cpp:122:17: error: cannot convert 'long long int*' to 'int*' for argument '1' to 'void answer(int*, int*)'
  answer(cur,door);
                 ^
cave.cpp: In function 'int main()':
cave.cpp:132:5: error: 'solve' was not declared in this scope
     solve();
     ^~~~~