Pagini recente » Cod sursa (job #1044277) | Cod sursa (job #366346) | Cod sursa (job #787200) | Cod sursa (job #372155) | Cod sursa (job #38774)
Cod sursa(job #38774)
#include<stdio.h>
#define NMAX 50005
int x[NMAX],y[NMAX];
int main()
{
FILE *fin=fopen("orgazi.in","r"),
*fout=fopen("orgazi.out","w");
int N,M,W,H,i,j,k;
fscanf(fin,"d%d%d%d",&N,&M,&W,&H);
for(i=1;i<=N;i++)
{
fscanf(fin,"%d%d",&x[i],&y[i]);
j=i;
while(j/2 && (x[j/2]<x[j] || (x[j/2]==x[j] && y[j/2]<y[j])) )
{
x[j/2]^=x[j];
x[j]^=x[j/2];
x[j/2]^=x[j];
y[j/2]^=y[j];
y[j]^=y[j/2];
y[j/2]^=y[j];
j/=2;
}
}
i=N;
while(i>1)
{
x[1]^=x[i];
x[i]^=x[1];
x[1]^=x[i];
y[1]^=y[i];
y[i]^=y[1];
y[1]^=y[i];
i--;
j=1;
while(1)
{
k=j<<1;
if(k>i) break;
if(k+1<=i && (x[k+1]>x[k] || (x[k+1]==x[k] && y[k+1]>y[k])) ) k++;
if(x[j]>=x[k] || (x[j]==x[k] && y[j]>=y[k]) ) break;
x[j]^=x[k];
x[k]^=x[j];
x[j]^=x[k];
y[j]^=y[k];
y[k]^=y[j];
y[j]^=y[k];
j=k;
}
}
fclose(fin);
fclose(fout);
return 0;
}