Cod sursa(job #601488)

Utilizator Smaug-Andrei C. Smaug- Data 6 iulie 2011 20:05:28
Problema Tribute Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>
#include <cstring>

#define MAXN 50001

int f(int *v, int D, int N){

  int r, i, sum=0;
  for(i=D; i<N; i++)
    sum+=v[i]*(i-D);
  r=sum;
  for(i=1; i<N; i++)
    v[i]+=v[i-1];
  for(i=1; i+D<N; i++){
    sum+=v[i-1];
    sum-=N-v[i+D-1];
    if(sum < r)
      r=sum;
  }

  return r;

}    

int main(){

  freopen("tribute.in", "r", stdin);
  freopen("tribute.out", "w", stdout);

  int N, X[MAXN+5], Y[MAXN+5], i, a, b, dx, dy;

  scanf("%d%d%d", &N, &dx, &dy);
  for(i=1; i<=N; i++){
    scanf("%d%d", &a, &b);
    X[a]++;
    Y[b]++;
  }

  printf("%d\n", f(X, dx, N)+f(Y, dy, N));

  return 0;

}