Cod sursa(job #1743136)

Utilizator TimitocArdelean Andrei Timotei Timitoc Data 17 august 2016 17:11:25
Problema Tribute Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <cstdio>
#define MAXN 50050
#define inf 0x3fffffff

using namespace std;

int n, dx, dy;
int xes[MAXN], yes[MAXN];
int s[MAXN], d[MAXN];

void citire()
{
    scanf("%d %d %d\n", &n, &dx, &dy);
    int x, y;
    for (int i = 1; i <= n; i++) {
		scanf("%d %d", &x, &y);
		xes[x]++;
		yes[y]++;
    }
}

int solve(int ces[MAXN], int dim)
{
	int cq = ces[0];
    s[0] = 0;
    for (int i = 0; i < MAXN; i++) {
		s[i] += cq;
		cq += ces[i];
    }
    cq = ces[n];
    d[n] = 0;
    for (int i = MAXN; i >= 0; --i) {
        d[n] += cq;
        cq += ces[i];
    }
    int mini = inf;
    for (int i = 1; i <= MAXN-dim; i++) {
		if (s[i] + d[i+dim] < mini)
			mini = s[i] + d[i+dim];
    }
    return mini;
}

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

    citire();
    int rez = solve(xes, dx) + solve(yes, dy);
    printf("%d", rez);

	return 0;
}