Cod sursa(job #3214930)

Utilizator matei0000Neacsu Matei matei0000 Data 14 martie 2024 16:15:02
Problema Tricouri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>

#define z(i,s,d) for(i=(s);i<(d);++i)
std::fstream f("tricouri.in"),g("tricouri.out",std::_S_out);

int n,m,k,p,A[32][32][8],s;

void h(int k,int x,int i,int p)
{
	if(i==p)
	{
		if(!k&&s<x&&x%p==0)
			s=x;
		return ;
	}
	h(k,x,i+1,p);
	int j;
	z(j,0,k)
	{
		if(!A[p][i][j])
			return ;
		x+=A[p][i][j];
		h(k-j-1,x,i+1,p);
	}
}

int main()
{
	int q,l,i,j,w;
	f>>n>>m;
	z(q,0,n)
	{
		f>>j;
		z(i,2,21)
		{
			w=j%i;
			for(l=5;l&&j>A[i][w][l-1];l--)
				A[i][w][l]=A[i][w][l-1];
			A[i][w][l]=j;
		}
	}
	z(l,0,m)
	{
		f>>k>>p;
		s=-1;
		h(k,0,0,p);
		g<<s<<'\n';
	}
	return 0;
}