Cod sursa(job #18118)
Utilizator | Victor Popescu slayer4u | Data | 18 februarie 2007 09:40:20 |
---|---|---|---|
Problema | Tricouri | Scor | 20 |
Compilator | cpp | Status | done |
Runda | preONI 2007, Runda 2, Clasa a 9-a si gimnaziu | Marime | 0.52 kb |
#include<stdio.h>
#include<algorithm>
using namespace std;
long x[300001],n,m,i,j,sum,p,k,o,maxim;
int main()
{
freopen ("tricouri.in","rt",stdin);
freopen ("tricouri.out","wt",stdout);
scanf("%ld %ld",&n,&m);
for (i=1;i<=n;i++)
scanf("%ld",&x[i]);
sort(x,x+n);
for (o=1;o<=m;o++)
{
scanf("%ld %ld",&k,&p);
maxim=-1;
for (i=n;i>=k;i--)
{
sum=0;
for (j=i;j>=i-k+1;j--)
sum+=x[j];
maxim=(sum%p==0)&&(sum>maxim)?sum:maxim;
}
printf("%ld\n",maxim);
}
return 0;
}