Cod sursa(job #601494)

Utilizator Smaug-Andrei C. Smaug- Data 6 iulie 2011 20:13:52
Problema Tribute Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
#include <cstring>

#define MAXN 50005

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

  int r, i, sum=0;
  for(i=D; i<MAXN; i++)
    sum+=v[i]*(i-D);
  r=sum;
  for(i=1; i<MAXN; i++)
    v[i]+=v[i-1];
  for(i=1; i+D<MAXNN; 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;

  memset(X, 0, sizeof(X));
  memset(Y, 0, sizeof(Y));

  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;

}