Cod sursa(job #1671422)

Utilizator andy1207Cioltan Andrei andy1207 Data 1 aprilie 2016 17:47:41
Problema Tribute Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.94 kb
#include<cstdio>
int v1[50001];
int v2[50001];
int main()
{
 int n,dx,dy,maxx,maxy,minx,miny,i,a,b,f,st,dr,min,j,s,t,min1;
 freopen("tribute.in","r",stdin);
 freopen("tribute.out","w",stdout);
 scanf("%d%d%d",&n,&dx,&dy);
 maxx=maxy=-1;
 minx=miny=999999;
 for(i=1;i<=n;i++)
    {
     scanf("%d%d",&a,&b);
     v1[a]++;
     v2[b]++;
     if(a>maxx)
        maxx=a;
     if(b>maxy)
        maxy=b;
     if(a<minx)
        minx=a;
     if(b<miny)
        miny=b;
    }
 for(i=minx;i<=maxx;i++)
    {
     v1[i]+=v1[i-1];
    }
 for(i=miny;i<=maxy;i++)
    {
     v2[i]+=v2[i-1];
    }
 min=9999999;
 for(i=0;i+dx-1<=maxx;i++)
    {
     j=i+dx-1;
     ///i= inceput de interval
     ///j= sfarsit de interval
     ///i-----j
     s=0;
     st=0;///stanga
     /*for(f=i-1;f>=minx;f--)
        {
         if(v1[f]!=0)
            {
             st++;
             s+=(i-f)*v1[f];
            }
        }*/
     s+=v1[i];
     dr=0;///dreapta
     /*for(f=j+1;f<=maxx;f++)
        {
         if(v1[f]!=0)
            {
             dr++;
             s+=(f-j)*v1[f];
            }
        }*/
     s+=v1[maxx]-v1[j];
     //vv[i]+=s;
     if(s<min && s!=0)
        min=s;
    }
 min1=99999999;
 for(i=0;i+dy-1<=maxy;i++)
    {
     j=i+dy-1;
     ///i= inceput de interval
     ///j= sfarsit de interval
     ///i-----j
     s=0;
     st=0;///sus
     /*for(f=i-1;f>=miny;f--)
        {
         if(v2[f]!=0)
            {
             st++;
             s+=(i-f)*v2[f];
            }
        }*/
     s+=v2[i];
     //t=s;
     //s=0;
     dr=0;///jos
     /*for(f=j+1;f<=maxy;f++)
        {
         if(v2[f]!=0)
            {
             dr++;
             s+=(f-j)*v2[f];
            }
        }*/
     s+=v2[maxy]-v2[j];
     //s+=t;
     if(s+min<min1)
        min1=s+min;
     //vv[i]+=s;
     //if(vv[i]<min)
        //min=vv[i];
    }
 printf("%d\n",min1);
return 0;
}