Cod sursa(job #3374810)
| Utilizator | Data | 9 noiembrie 2026 13:59:18 | |
|---|---|---|---|
| Problema | Zebughil | Scor | 60 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 1.48 kb |
#include <fstream>
using namespace std;
ifstream fin("zebughil.in");
ofstream fout("zebughil.out");
#define int long long
int n,g,v[18],maskbun,rez;
int f[18],maxi;
signed main()
{
for(int q=1; q<=3; q++)
{
fin>>n>>g;
for(int i=1; i<=n; i++)
{
fin>>v[i];
f[i]=0;
}
rez=0;
for(int j=1; j<=n; j++)
{
maskbun=0;
maxi=0;
for(int mask=0; mask<(1<<n); mask++)
{
int s=0;
for(int i=0; i<n; i++)
{
if((1<<i)&mask)
{
if(f[i]){
break;
}
if(s+v[i+1]<=g)
{
s+=v[i+1];
}
}
}
if(s>maxi)
{
maxi=s;
maskbun=mask;
}
}
bool ok=1;
for(int i=0;i<n;i++){
if((1<<i)&maskbun){
f[i]=1;
}
}
for(int i=0;i<n;i++){
if(f[i]==0){
ok=0;
break;
}
}
if(ok){
fout<<j<<'\n';
break;
}
}
}
return 0;
}
