Cod sursa(job #2349859)

Utilizator shantih1Alex S Hill shantih1 Data 20 februarie 2019 19:54:13
Problema Zebughil Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <cstring>
#define ll long long

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

int n,i,j,nr,x,m,l;
int r[131100];
ll g,s[131100],ns,v[20];

int main() {
	
	int h=3;
	while(h--)
	{
		fin>>n>>g;
		m=n;	n=0;
		for(i=1;i<=m;i++)
		{
			fin>>nr;
			if(nr>0)	v[++n]=nr;
		}
		
		l=(1<<n)-1;
		s[0]=0;
		r[0]=1;
		for(i=1;i<=l;i++)
		{
			r[i]=n+1;
			s[i]=g+1;
			for(j=0;j<n;j++)
				if(i&(1<<j))
				{
					x=i-(1<<j);
					nr=r[x];
					ns=s[x]+v[j+1];
					if(ns>g)
					{
						nr++;
						ns-=g;
					}
					if(nr==r[i])
						s[i]=min(s[i],ns);
					if(nr<r[i])
					{
						r[i]=nr;
						s[i]=ns;
					}
				}
		}
		fout<<r[l]<<"\n";
	}
}