Nu aveti permisiuni pentru a descarca fisierul grader_test16.in
Cod sursa(job #1622616)
| Utilizator | Data | 1 martie 2016 12:53:14 | |
|---|---|---|---|
| Problema | Tribute | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.83 kb |
#include<fstream>
#define NMax 50005
using namespace std;
ifstream fin("tribute.in");
ofstream fout("tribute.out");
int N,DX,DY;
int X[NMax],Y[NMax];
void Read()
{
fin>>N>>DX>>DY;
for(int i=1;i<=N;++i)
{
int x,y; fin>>x>>y;
X[x]++;
Y[y]++;
}
}
int Sol(int V[], int D)
{
int Smin=0,S=0;
for (int i=D; i<NMax; ++i)
S += ((i-D)*V[i]);
Smin = S;
for (int i=1; i<NMax; ++i)
V[i] += V[i-1];
for (int i=1; i+D<NMax; ++i)
{
S+=V[i-1];
S-=(N-V[i+D-1]);
Smin = min(Smin,S);
}
return Smin;
}
void Print()
{
int x,y;
x = Sol(X,DX);
y = Sol(Y,DY);
fout<<x+y<<"\n";
}
int main()
{
Read();
Print();
fin.close();
fout.close();
return 0;
}
