Cod sursa(job #2038804)

Utilizator pas.andreiPopovici Andrei-Sorin pas.andrei Data 13 octombrie 2017 23:40:01
Problema Zebughil Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>
#define NMAX 30005
#define MOD 666013
#define INF 0x3f3f3f3f
#define x first
#define y second
#define pb push_back

using namespace std;

ifstream fin("zebughil.in");
ofstream fout("zebughil.out");

int dp[1<<18],v[20];

int main() {
	int t=3,n,i,j,sum,g;

	while(t--) {
		fin>>n>>g;

		for(i=0;i<n;++i) fin>>v[i];

		for(i=1;i<(1<<n);++i) {
			sum=0;

			for(j=0;j<n;++j)
				if(i&(1<<j)) sum+=v[j];

			if(sum<=g) dp[i]=1;
			else {
				dp[i]=n;

                for(j=i&(i-1);j>0;j=(j-1)&i)
					dp[i]=min(dp[i], dp[j]+dp[i^j]);
			}
		}

		fout<<dp[(1<<n)-1]<<'\n';
	}

	return 0;
}