Pagini recente » Cod sursa (job #820595) | Rating Cristina Opriceana (cristina2689) | Cod sursa (job #2064318) | Cod sursa (job #699249) | Cod sursa (job #420448)
Cod sursa(job #420448)
#include <iostream>
using namespace std;
int N, M, D[50001], L[50001];
int Verifica(int dist) {
int i, j, p, q;
for(i=1; i<=50000; i++) {
p=rand()%N+1;
q=rand()%N+1;
//verific distanta dintre p si q
j=abs(D[p]-D[q])+L[p]+L[q];
if(j>=dist) { return 1; }
}
return 0;
}
int main() {
srand(time(NULL));
FILE *f1=fopen("orase.in", "r"), *f2=fopen("orase.out", "w");
int i, j, p, q, sol;
fscanf(f1, "%d%d", &M, &N);
for(i=1; i<=N; i++) {
fscanf(f1, "%d%d", &D[i], &L[i]);
}
int ls=0, ld=3000000;
while(ls<=ld) {
int mij=(ls+ld)>>1;
if(Verifica(mij)) {
sol=mij;
ls=mij+1;
}
else {
ld=mij-1;
}
}
fprintf(f2, "%d\n", sol);
fclose(f1); fclose(f2);
return 0;
}