Nu aveti permisiuni pentru a descarca fisierul grader_test3.in
Cod sursa(job #3226653)
Utilizator | Data | 22 aprilie 2024 14:03:19 | |
---|---|---|---|
Problema | Ghiozdan | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.97 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("ghiozdan.in");
ofstream fout("ghiozdan.out");
int n,G,i,g,x,j,F[201],D[75003],l;
pair <int,int> T[75003];
int main()
{
fin>>n>>G;
for(i=1;i<=n;i++)
{
fin>>x;
F[x]++;
}
for(i=200;i>=1;i--)
if(F[i])
for(j=G;j>0;j--)
if(!D[j])
for(l=1;l<=F[i];l++)
{
if(j-l*i<0)
break;
if(D[j-l*i]||j-l*i==0)
{
D[j]=D[j-l*i]+l;
T[j]={i,l};
break;
}
}
g=G;
while(!D[g--]);
g++;
fout<<g<<' '<<D[g]<<'\n';
while(g)
{
for(j=1;j<=T[g].second;j++)
fout<<T[g].first<<'\n';
g-=T[g].first*T[g].second;
}
return 0;
}