제출 #1340655

#제출 시각아이디문제언어결과실행 시간메모리
1340655vtnooThe Potion of Great Power (CEOI20_potion)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#define L(i,j,k) for(int i=(j);i<=(k);i++)
#define R(i,j,k) for(int i=(j);i>=(k);i--)
#define all(x) x.begin(),x.end()
#define sz(a) ((int)a.size())
#define pb push_back
using namespace std;
typedef long long ll; 
typedef pair<int,int> ii;

const int MAXN=1e5+5,SQRT=100,INF=1e9;

int act,n,u,h[MAXN],A[MAXN],B[MAXN];

struct Block{
	int tim,op;
	unordered_map<int,set<int>>aristas;
	Block(){
		tim=INF;
		op=0;
	}
	void ins(int u,int a,int b){
		op++;  
		if(aristas[a].count(b)){
			aristas[a].erase(b);
		}else{
			aristas[a].insert(b);
		}
		if(aristas[b].count(a)){
			aristas[b].erase(a);
		}else{
			aristas[b].insert(a);
		}
	}
}blk[200];

int question(int x, int y, int v) {
	v--;
	int l=-1,r=act+1;
	while(r-l>1){
		int m=(r+l)/2;
		if(blk[m].tim<=v){
			l=m;
		}else{
			r=m;
		}
	}
	set<int>nx,ny;
	int ini=0;
	if(l!=-1){
		nx=blk[l].aristas[x];
		ny=blk[l].aristas[y]; 
		ini=blk[l].tim+1;
	}
	L(i,ini,v){
		int a=A[i],b=B[i];
		if(a==x||b==x){
            int z=(a==x?b:a);
            if(nx.count(z))nx.erase(z);
            else nx.insert(z);
        }
        if(a==y||b==y){
            int z=(a==y?b:a);
            if(ny.count(z))ny.erase(z);
            else ny.insert(z);
        }
	}
	int ans=INF;
	for(auto i:nx){
		for(auto j:ny){
			ans=min(ans,abs(h[i]-h[j]));
		}
	}
	return ans;
}

int main(){
	int d,q;cin>>n>>d>>u>>q;
	L(i,0,n-1)cin>>h[i];
	L(i,0,u-1){
		cin>>A[i]>>B[i];
		if(blk[act].op>=SQRT){
			act++;
			blk[act-1].tim=i-1;
			blk[act].aristas=blk[act-1].aristas;
		}
		blk[act].ins(i,A[i],B[i]);
	}
	blk[act].tim=u-1;
	while(q--){
		int x,y,v;cin>>x>>y>>v;
		cout<<question(x,y,v)<<endl;
	}
}

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

/usr/bin/ld: /tmp/ccQvENRJ.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccJaQKBs.o:potion.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccQvENRJ.o: in function `main':
grader.cpp:(.text.startup+0xe4): undefined reference to `init(int, int, int*)'
/usr/bin/ld: grader.cpp:(.text.startup+0x16f): undefined reference to `curseChanges(int, int*, int*)'
collect2: error: ld returned 1 exit status