Cod sursa(job #2349870)

Utilizator shantih1Alex S Hill shantih1 Data 20 februarie 2019 20:01:04
Problema Zebughil Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>
#include <cstring>

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

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

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+5;
			s[i]=g+5;
			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=v[j+1];
					}
					if(nr==r[i] && ns<s[i])	s[i]=(int)ns;
					if(nr<r[i])
					{
						r[i]=nr;
						s[i]=(int)ns;
					}
				}
		}
		fout<<r[l]<<"\n";
	}
}