Pagini recente » Cod sursa (job #1169012) | Cod sursa (job #394395) | Cod sursa (job #600696) | Cod sursa (job #1881110) | Cod sursa (job #1536862)
#include<cstdio>
#include<algorithm>
#define c first
#define t second
using namespace std;
FILE * fin = fopen("garaj.in","r");
FILE * fout = fopen("garaj.out","w");
long long n, m, p ,u,mid, x[100005],cars;
pair<long long,long long> v[100005];
int verif( long long T ){
cars = 0;
for( long long i = 1; i <= n; i++ ){
x[i] = ( T / (v[i].t * 2) ) * v[i].c ;
}
sort( x + 1, x + n + 1 );
long long k = m;
for( long long i = n; i >= 1; i-- ){
cars++;
k -= x[i];
if( k <= 0){
return 1;
}
}
if( k > 0 )
return 0;
else{
return 1;
}
}
int main(){
fscanf(fin,"%lld %lld",&n,&m);
for ( long long i = 1; i <= n; i++ ){
fscanf(fin,"%lld %lld",&v[i].c,&v[i].t);
}
p = 1;
u = m * 1LL * 1000;
while( p <= u ){
mid = ( p + u ) / 2;
if( verif(mid) == 1 ){
u = mid -1;
}else{
p = mid + 1;
}
}
u = verif(p);
fprintf(fout,"%lld %lld",p,cars);
return 0;
}