比赛 EYOI与SBOI开学欢乐赛14th 评测结果 AAAAAAAAAA
题目名称 ZQC 的拼图 最终得分 100
用户昵称 ZRQ 运行时间 1.017 s
代码语言 C++ 内存使用 5.24 MiB
提交时间 2022-10-24 21:34:20
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=105;
ll ans,n,m,a[N],b[N],f[N][N];
bool check(ll mid)
{
	memset(f,0,sizeof(f));
	ll x=0,y;
	for(int i=1;i<=n;++i)
	{
		for(int j=0;j<=x;++j)
			for(int k=j;k<=min(m,j+mid/a[i]);++k)
				f[i][k]=max(f[i][k],f[i-1][j]+(mid+(j-k)*a[i])/b[i]),y=k;
		x=y;
	}
	return f[n][m]>=m;
}
int main()
{
	freopen("jigsaw.in","r",stdin);
	freopen("jigsaw.out","w",stdout);
	scanf("%lld%lld",&n,&m);
	for(int i=1;i<=n;++i) scanf("%lld%lldd",&a[i],&b[i]);
	ll l=1,r=1e8,mid;
	while(l<=r)
	{
		mid=(l+r)>>1;
		if(check(mid)) r=mid-1,ans=mid;
		else l=mid+1; 
	}
	printf("%lld\n",ans);
	return 0;
}