Cod sursa(job #1483198)

Utilizator vancea.catalincatalin vancea.catalin Data 8 septembrie 2015 22:05:28
Problema Ghiozdan Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
fstream fin("ghiozdan.in",ios::in),fout("ghiozdan.out",ios::out);
int e[100],v[100],x[100],n,g,maxgreutate=0,minelemente=999999999;
bool cmp(int a,int b)
{
    return a>b;
}
void ghiozdan(int elemente,int greutate,int k)
{
    int i;
    if(greutate>maxgreutate||(greutate==maxgreutate&&minelemente>elemente))
    {
        maxgreutate=greutate;
        minelemente=elemente;
        fout.close();
        fout.open("ghiozdan.out",ios::out|ios::in);
        fout<<greutate<<" "<<elemente<<"\n";
        for(i=1;i<k;i++)
        {
            fout<<x[i]<<"\n";
        }
    }
    for(i=1;i<=n;i++)
    {
        if(v[i]==0)
        {
            if(greutate+e[i]<=g)
            {
                v[i]=1;
                x[k]=e[i];
                ghiozdan(elemente+1,greutate+e[i],k+1);
                v[i]=0;
            }
        }
    }
}
int main()
{
    int i,j,q;
    fin>>n>>g;
    for(i=1;i<=n;i++)
    {
        fin>>e[i];
    }
    sort(e+1,e+n+1,cmp);
    ghiozdan(0,0,1);
}