Pagini recente » Cod sursa (job #2825733) | Cod sursa (job #30194) | Cod sursa (job #397234) | Cod sursa (job #690351) | Cod sursa (job #1237712)
#include <fstream>
using namespace std;
ifstream in("tribute.in");
ofstream out("tribute.out");
const int NMAX = 50000;
const int INF = (1<<30);
int a[NMAX+1], b[NMAX+1];
int Sx= 0, Sy= 0;
int N, X,Y;
int main() {
in >> N >> X >> Y;
for( int i= 1; i<=N; ++i ) {
int n,m;
in >> n >> m;
++a[n]; ++b[m];
if( n>X ) Sx+= n-X;
if( m>X ) Sy+= m-Y;
}
int Rx= INF, Ry= INF;
int S= 0, C= 0, D= 0, st= 1, fn= X+1;
int ind;
for( ind= 0; ind<=X; ++ind ) {
C+= a[ind];
}
D= N-C;
for( ; S<=D && ind<=N; ++ind, ++st, ++fn ) {
S+= a[st-1];
C-= a[st-1];
C+= a[fn];
D-= a[fn];
Sx-= D; Sx-= a[fn];
Sx+= S;
Rx= min( Rx, Sx );
}
S= D= C= 0;
ind= 0; st= 1; fn= Y+1;
for( ind= 0; ind<=Y; ++ind ) {
C+= b[ind];
}
D= N-C;
for( ; S<=D && ind<=N; ++ind, ++st, ++fn ) {
S+= b[st-1];
C-= b[st-1];
C+= b[fn];
D-= b[fn];
Sy+= (S-D-b[fn]);
Ry= min( Ry, Sy );
}
out << Rx+Ry << '\n';
return 0;
}