Pagini recente » Cod sursa (job #2141129) | Cod sursa (job #1497632) | Cod sursa (job #999219) | Cod sursa (job #752629) | Cod sursa (job #1536855)
#include<fstream>
#include<algorithm>
#define c first
#define t second
using namespace std;
ifstream cin("garaj.in");
ofstream cout("garaj.out");
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(){
cin >> n >> m;
for ( long long i = 1; i <= n; i++ ){
cin >> 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);
cout << p << " " << cars ;
return 0;
}