Cod sursa(job #1186678)

Utilizator apopeid15Apopei Daniel apopeid15 Data 17 mai 2014 14:30:49
Problema Tribute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("tribute.in");
ofstream g("tribute.out");
int n,m,i,dr,j,st,k,l,o,x[50002],y[50002],dx,dy;
long sc,s,sd,ss,rez;
 
int main()
{
    f>>n>>dx>>dy;
    for(i=1;i<=n;i++) f>>x[i]>>y[i];
 
    sort(x+1,x+n+1);
    dr=n;
    while(dr&&x[dr]>dx)
    {
        sc+=x[dr]-dx;
        dr--;
    }
 
    s=sc; st=1;
    sd=sc;
    for(i=1;i+dx<=x[n];i++)
    {
        while(x[st]<i&&st<n) st++;
        sd-=n-dr;
        ss+=st-1;
        while(x[dr+1]<=i+dx&&dr<n) dr++;
        s=min(s,ss+sd);
    }
    rez=s;
 
    sort(y+1,y+n+1);
    dr=n; sc=0;
    while(dr&&y[dr]>dy)
    {
        sc+=y[dr]-dy;
        dr--;
    }
 
    s=sc; st=1;
    sd=sc;
    ss=0;
    for(i=1;i+dy<=y[n];i++)
    {
        while(y[st]<i&&st<n) st++;
        sd-=n-dr;
        ss+=st-1;
        while(y[dr+1]<=i+dy&&dr<n) dr++;
        s=min(s,ss+sd);
    }
 
    rez+=s;
 
    g<<rez;
 
    return 0;
}