Cod sursa(job #3173166)
Utilizator | Data | 21 noiembrie 2023 22:24:47 | |
---|---|---|---|
Problema | Zebughil | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <fstream>
using namespace std;
ifstream fin ("zebughil.in");
ofstream fout("zebughil.out");
int n,G,i,g,p;
int dp[20000001];
long long dim=2000000001;
int main()
{
for(int k=1;k<=3;k++)
{
fin>>n>>G;
for(long long i=1;i<dim;i++)
dp[i]=-1;
for(i=1;i<=n;i++)
{
fin>>g>>p;
for(int j=G-g;j>=0;j--)
if(dp[j]!=-1 && dp[j+g]<dp[j]+p)
dp[j+g]=dp[j]+p;
}
int maxim=-1;
for(long long i=1;i<dim;i++)
if(dp[i]>maxim)
maxim=dp[i];
fout<<maxim<<'\n';
}
return 0;
}