Pagini recente » Cod sursa (job #2540464) | Cod sursa (job #2185792) | Cod sursa (job #1782876) | Cod sursa (job #100856) | Cod sursa (job #1951333)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("lapte.in");
ofstream fout ("lapte.out");
int n,l,m[102][102];
struct{
int a,b;
}v[102];
bool doit(int T){
for(int i=0;i<=n;++i)
for(int j=1;j<=l;++j)
m[i][j]=-1;
m[0][0]=0;
for(int i=0;i<n;++i){
for(int j=0;j<=l;++j){
if(m[i][j]!=-1){
for(int k=0;k<=T/v[i+1].b;++k)
m[i+1][k]=m[i][j]+(T-k*v[i+1].b)/v[i+1].a;
}
}
}
for(int i=l;i<=100;++i)
if(m[n][i]>=l)return 1;
else return 0;
}
int main()
{
int maxx=-1;
fin>>n>>l;
for(int i=1;i<=n;++i)
fin>>v[i].a>>v[i].b;
int p=1,q=100;
while(p<=q){
int mt=(p+q)/2,qq=doit(mt);
if(qq){maxx=qq;q=mt-1;}
else p=mt+1;
}
fout<<maxx<<'\n';
return 0;
}