Cod sursa(job #2016899)

Utilizator DianaPopDiana Pop DianaPop Data 30 august 2017 19:52:31
Problema Tribute Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <stdio.h>
#include <stdlib.h>

int N,DX,DY,X[50005],Y[50005];

int solutie( int a[], int k ){

    int smin = 0 , s = 0;

    for( int i = k ; i < 50005 ; i++ ){
        s =  s + (( i - k )* a[i] );
    }

    smin = s;

    for( int i = 1 ; i < 50005 ; i++ ){
        a[i] = a[i] + a[ i - 1 ];
    }

    for( int i = 1 ; i + k < 50005 ; i++){

        s = s + a[ i - 1 ];
        s = s - ( N - a[ i + k - 1 ]);
        smin = smin < s ? smin : s;
    }

    return smin;
}

int main(){

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

    scanf( "%d %d %d" , &N , &DX , &DY );


    for( int i = 1 ; i <= N ; i++ ){
        int x,y;
        scanf( "%d %d" , &x , &y );
        X[x]++;
        Y[y]++;
    }

    int x,y;
    x = solutie( X , DX );
    y = solutie( Y , DY );
    printf( "%d\n" , x + y );


    return 0;
}