Cod sursa(job #2450764)

Utilizator Stefan_PiscuPiscu Stefan Constantin Stefan_Piscu Data 24 august 2019 15:41:28
Problema Tribute Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
using namespace std;

ifstream fin("tribute.in");
ofstream fout("tribute.out");

#define N 50005

long long n, lx, ly, sx1[N], sy1[N], sx2[N], sy2[N], x[N], y[N];

int main()
{
    fin>>n>>lx>>ly;
    for(long long i=1;i<=n;++i)
    {
        fin>>x[i]>>y[i];
        sx1[x[i]]+=1;
        sx2[x[i]]+=1;
        sy1[y[i]]+=1;
        sy2[y[i]]+=1;
    }
    for(long long i=1;i<=n;++i)
    {
        sx1[i]+=sx1[i-1];
        sy1[i]+=sy1[i-1];
    }
    for(long long i=n;i>=0;--i)
    {
        sx2[i]+=sx2[i+1];
        sy2[i]+=sy2[i+1];
    }
    for(long long i=1;i<=n;++i)
    {
        sx1[i]+=sx1[i-1];
        sy1[i]+=sy1[i-1];
    }
    for(long long i=n;i>=0;--i)
    {
        sx2[i]+=sx2[i+1];
        sy2[i]+=sy2[i+1];
    }
    long long minx=sx2[lx+1];
    for(long long i=lx+1;i<=n;++i)
        if(minx>(sx1[i-lx-1]+sx2[i+1])) minx=sx1[i-lx-1]+sx2[i+1];;
    long long miny=sy2[ly+1];;
    for(long long i=ly+1;i<=n;++i)
        if(miny>(sy1[i-ly-1]+sy2[i+1])) miny=sy1[i-ly-1]+sy2[i+1];;
    fout<<minx+miny<<"\n";
    return 0;
}