Submission #657866

#TimeUsernameProblemLanguageResultExecution timeMemory
657866gg123_peCave (IOI13_cave)C++14
Compilation error
0 ms0 KiB
#include "cave.h"
#include <bits/stdc++.h> 
using namespace std; 

#define f(i,a,b) for(int i = a; i < b; i++)
const int N = 5005; 

/*
vector <int> s, d, p; 
int n; 

int tryCombination(vector <int> v){
	f(i,0,n) if(v[p[i]] != s[p[i]]) return i; 
	return -1; 
}

void answer(vector <int> si, vector <int> di){
	f(i,0,n){
		if(si[i] != s[i] or di[i] != d[i]){
			cout << "WA\n"; 
			return; 
		}
	}
	cout << "AC\n"; 
}

*/

int v[N], S[N], D[N], inv[N]; 

void change(int l, int r){
	f(i,l,r+1) if(D[i] == -1) v[i] = 1 - v[i]; 
}

int tri(int r[]){
    int ans = tryCombination(r); 
    if(ans == -1) ans = n; 
    return ans; 
}
void find(int x){
	f(i,0,n) v[i] = 0; 
	f(i,0,x) v[inv[i]] = S[inv[i]]; 

	int l = 0, r = n-1; 
	int val = tri(v); 

	int u; 
	
	if(val == x){
		u = 1;  
		while(l < r){
			int m = (l+r)>>1; 
			change(0, m); 

            /*
            cout << l << " " << r << "\n"; 
            f(i,0,n) cout << v[i] << " ";
            cout << "\n" << tryCombination(v) << "\n"; 
            */
			if(tri(v) != val) r = m; 
			else l = m+1; 

			change(0, m); 
		}
	}
	else{
		u = 0; 
		while(l < r){
			int m = (l+r)>>1; 
			change(0, m); 

    
			if(tri(v) <= val) r = m; 
			else l = m+1; 

			change(0, m); 
		}
	}
	S[l] = u, D[l] = x, inv[x] = l;
}
void exploreCave(int n) {
	f(i,0,n) S[i] = D[i] = inv[i] = -1; 

	f(i,0,n)
		find(i); 
	
    answer(S, D); 
}

/*
int main(){
	cin >> n; 

	s.resize(n), d.resize(n), p.resize(n); 

	f(i,0,n) cin >> s[i]; 
	f(i,0,n) cin >> d[i], p[d[i]] = i; 


	exploreCave(n); 
	return 0; 
}
*/

Compilation message (stderr)

cave.cpp: In function 'int tri(int*)':
cave.cpp:37:25: error: 'n' was not declared in this scope
   37 |     if(ans == -1) ans = n;
      |                         ^
cave.cpp: In function 'void find(int)':
cave.cpp:41:8: error: 'n' was not declared in this scope
   41 |  f(i,0,n) v[i] = 0;
      |        ^
cave.cpp:5:37: note: in definition of macro 'f'
    5 | #define f(i,a,b) for(int i = a; i < b; i++)
      |                                     ^
cave.cpp:44:17: error: 'n' was not declared in this scope
   44 |  int l = 0, r = n-1;
      |                 ^