Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
147496 | 吴松韬 | FATE | C++ | 通过 | 100 | 0 MS | 400 KB | 494 | 2024-05-18 15:36:29 |
#include<bits/stdc++.h> using namespace std; int f[200][200]; int main(){ int n,m,k,s; int a[105],b[105]; while(cin>>n>>m>>k>>s){ for(int i=1;i<=k;i++)cin>>a[i]>>b[i]; memset(f,0,sizeof(f)); for(int i=1;i<=k;i++) for(int j=1;j<=s;j++) for(int k=b[i];k<=m;k++) f[j][k]=max(f[j][k],f[j-1][k-b[i]]+a[i]); int flag=-1; for(int i=0;i<=m;i++) for(int j=1;j<=s;j++) if(f[j][i]>=n){ flag=m-i; i=m+1; break; } cout<<flag<<endl; } }