Pagini recente » Cod sursa (job #1183992) | Cod sursa (job #130668) | Cod sursa (job #962400) | Cod sursa (job #2975244) | Cod sursa (job #24392)
Cod sursa(job #24392)
#include<iostream.h>
#include<fstream.h>
typedef int stiva[100];
int n,x,v[100],max,s=0,p;
stiva st;
ifstream f("tricouri.in");
ofstream g("tricouri.out");
void init(int k)
{if(k==1)
st[k]=0;
else
st[k]=st[k-1];
}
int succesor(int k)
{if(st[k]<n-x+k)
{st[k]=st[k]+1;return 1;}
else
return 0;
}
int valid()
{return 1;}
int solutie(int k)
{return k==x;}
void tipar()
{s=0;
for(int i=1;i<=x;i++)
s=s+v[st[i]];
if((s>max)&&(s%p==0))
max=s;
}
void bt(int k)
{init(k);
while(succesor(k))
if(valid())
if(solutie(k))
tipar();
else bt(k+1);
}
int main()
{int m,a;
f>>n;
f>>m;
for(int j=1;j<=n;j++)
{f>>a;
v[j]=a;
}
for(j=1;j<=m;j++)
{f>>x;
f>>p;
max=0;
bt(1);
if(max!=0)
g<<max<<endl;
else
g<<"-1"<<endl;
}
f.close();g.close();
return 0;
}