Cod sursa(job #1023281)

Utilizator TibixbAndrei Tiberiu Tibixb Data 6 noiembrie 2013 19:00:52
Problema Tribute Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream>
using namespace std;
int n, i, dimx, dimy, vx, vy, fx[50002], fy[50002], sx[50002], sy[50002], dx[50002], dy[50002], x, y, minimx, minimy; 
FILE*fin=fopen("tribute.in","r");
ofstream fout("tribute.out");
int main(){
	fscanf(fin,"%d%d%d", &n, &dimx, &dimy);
	for(i=1; i<=n; i++){
		fscanf(fin,"%d%d", &x, &y);
		fx[x]++;
		fy[y]++;
	}
	vx = fx[0];
	for(i=1; i<=50000; i++){
		sx[i] = sx[i-1] + vx;
		vx += fx[i];
	}
	vy=fy[0];
	for(i=1; i<=50000; i++){
		sy[i]=sy[i-1]+vy;
		vy +=fy[i];
	}
	vx=fx[50000];
	for(i=49999; i>=0; i--){
		dx[i]=dx[i+1]+vx;
		vx+=fx[i];
	}
	vy=fy[50000];
	for(i=49999; i>=0; i--){
		dy[i]=dy[i+1]+vy;
		vy +=fy[i];
	}
	minimx=999999;
	minimy=999999;
	for(i=0; i<=50000-dimx; i++){
		if(sx[i]+dx[i+dimx]<minimx)
			minimx=sx[i]+dx[i+dimx];
	}
	for(i=0; i<=50000-dimy; i++){
		if(sy[i]+dy[i+dimy]<minimy)
			minimy=sy[i]+dy[i+dimy];
	}
	fout<<minimx+minimy<<"\n";
return 0;
}