Submission #42224

#TimeUsernameProblemLanguageResultExecution timeMemory
42224yusufakeTeams (IOI15_teams)C++98
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> 
using namespace std; 

#define _ int v, int tl, int tr, int l, int r
#define tm (tl + tr >> 1)
#define sol L[v],tl,tm,l,r 
#define sag R[v],tm+1,tr,l,r 

#define mp make_pair 
#define pb push_back 
#define st first 
#define nd second 

typedef long long ll; 
typedef pair < int , int > pp; 
const int mod = 1e9 + 7; 
const int N = 5e5 + 5; 

pp P[N];
int root[N],s[N*18],L[N*18],R[N*18],id; 

int up(_){ 	
	if(tl > r || tr < l) return v;
	int nw = ++id; 	
	if(tl == tr) { s[nw] = s[v] + 1; return nw; } 
	L[nw] = up(sol); 	
	R[nw] = up(sag); 	
	s[nw] = s[v] + 1; 	
	return nw; 
} 	 
int qry(_) {
	if(tl > r || tr < l) return 0; 
	if(tl >= l && tr <= r) return s[v]; 
	return qry(sol) + qry(sag); 
} 

bool can(int m, int T[]){
    sort(T+1 , T+m+1);
	int i, x, p, kalan;
    p = kalan = 0;
    for(i=1;i<=m;i++){
		x = T[i];
		p = T[i-1];
        kalan = min(kalan , qry(root[p],1,n,x,n));
		kalan += qry(root[x],1,n,x,n) - qry(root[p],1,n,x,n);
        //cout << qry(root[x],1,n,x,n) << " " <<  qry(root[p],1,n,x,n) << " aa\n";
		kalan -= x;
	    if(kalan < 0) return 0;
    }	
    return 1;
}

void init(int n, int a[], int b[]){
    int i,p;
    for(i=1;i<=n;i++) P[i] = mp(a[i-1] , b[i-1]);
    sort(P+1 , P+n+1);
	for(i=1;i<=n;i++){
		p = up(p,1,n,P[i].nd,P[i].nd);
		if(P[i].st != P[i+1].st)
			root[ P[i].st ] = p; 
	}
	for(i=1;i<=n;i++)
		if(!root[i])
			root[i] = root[i-1];
}
/*
int main(){
    freopen("input.in", "r", stdin);freopen("input.out", "w", stdout);
	cin >> n;
	for(i=1;i<=n;i++) cin >> A[i] >> B[i].st;
	sort(A+1 , A+n+1);
	for(i=1;i<=n;i++){
		p = up(p,1,n,A[i].nd,A[i].nd);
		if(A[i].st != A[i+1].st)
			root[ A[i].st ] = p; 
	}
	for(i=1;i<=n;i++)
		if(!root[i])
			root[i] = root[i-1];
	
    for(cin >> q; q-- ;){
		cin >> m;
		for(i=1;i<=m;i++)
			cin >> T[i];
        sort(T+1 , T+m+1);
		for(kalan=0,i=1;i<=m;i++){
			x = T[i];
			p = T[i-1];
            kalan = min(kalan , qry(root[p],1,n,x,n));
			kalan += qry(root[x],1,n,x,n) - qry(root[p],1,n,x,n);
            //cout << qry(root[x],1,n,x,n) << " " <<  qry(root[p],1,n,x,n) << " aa\n";
			kalan -= x;
			//cout << kalan << " ss\n";
            if(kalan < 0) break;
		}	
        puts(i > m ? "1" : "0");
		//return 1;
	}
	
	return 0;
}
*/

Compilation message (stderr)

teams.cpp: In function 'int up(int, int, int, int, int)':
teams.cpp:5:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
 #define tm (tl + tr >> 1)
                ^
teams.cpp:6:21: note: in expansion of macro 'tm'
 #define sol L[v],tl,tm,l,r 
                     ^
teams.cpp:26:13: note: in expansion of macro 'sol'
  L[nw] = up(sol);  
             ^
teams.cpp:5:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
 #define tm (tl + tr >> 1)
                ^
teams.cpp:7:18: note: in expansion of macro 'tm'
 #define sag R[v],tm+1,tr,l,r 
                  ^
teams.cpp:27:13: note: in expansion of macro 'sag'
  R[nw] = up(sag);  
             ^
teams.cpp: In function 'int qry(int, int, int, int, int)':
teams.cpp:5:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
 #define tm (tl + tr >> 1)
                ^
teams.cpp:6:21: note: in expansion of macro 'tm'
 #define sol L[v],tl,tm,l,r 
                     ^
teams.cpp:34:13: note: in expansion of macro 'sol'
  return qry(sol) + qry(sag); 
             ^
teams.cpp:5:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
 #define tm (tl + tr >> 1)
                ^
teams.cpp:7:18: note: in expansion of macro 'tm'
 #define sag R[v],tm+1,tr,l,r 
                  ^
teams.cpp:34:24: note: in expansion of macro 'sag'
  return qry(sol) + qry(sag); 
                        ^
teams.cpp: In function 'bool can(int, int*)':
teams.cpp:44:43: error: 'n' was not declared in this scope
         kalan = min(kalan , qry(root[p],1,n,x,n));
                                           ^