Cod sursa(job #2166857)

Utilizator KennyyyGardner Kenneth Benjamin Kennyyy Data 13 martie 2018 19:13:53
Problema Ghiozdan Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
int n,G,k,t,b[100],a[100][100],i,s[100],j;
int main()
{
    f>>n>>G;
    for(i=1;i<=n;i++) f>>b[i];
    for(i=1;i<=n-1;i++) for(j=i+1;j<=n;j++) if(b[i]>b[j]) swap(b[i],b[j]);
 for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++) a[j][i]=max(b[j]+a[j-1][i-1],a[j-1][i]);
    }
 for(i=1;i<=n;i++)
 {j=n;
  while(a[n+1-i][j]>G) j--;
  s[n+1-i]=a[n+1-i][j];
 } k=-1;
 for(i=2;i<=n;i++) if(s[i-1]<=s[i]) k=i; i=1; g<<s[k];
while(a[k][i]!=s[k]) i++; g<<" "<<i<<'\n';
while(a[k][i]!=0) if(b[k]+a[k-1][i-1]>=a[k-1][i])
{g<<b[k]<<'\n';
    k--;
    i--;
}
else
    return 0;
}