Cod sursa(job #253932)

Utilizator cosmin79Carabet Cosmin Andrei cosmin79 Data 6 februarie 2009 13:41:22
Problema Caramizi Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 1 Marime 1 kb
#include <stdio.h>
#define N 200005
#include <stdlib.h>
int n,m,c[N],s=0;
int compar(const void*p,const void*q)
{
	return ( *(int*)p - *(int*)q );
}
void citire()
{
	int i;
	scanf("%d%d",&n,&m);
	for (i=1; i<=n; i++)
	{
		scanf("%d",&c[i]);
		s+=c[i];
	}
	qsort(c+1,n,sizeof(c[0]),compar);
}
void rezolvare()
{
	int i,x,solutie,t,caut,s_part,r;
	t=n;
	for (i=1; i<=m; i++)
	{
		scanf("%d",&x);
		printf("%d ",x);
		solutie=0;
		if (c[1]>=x)
			printf("%d\n",x*n);
		else
		{
			//while(solutie==0)
			//{
				s_part=0;
				for (i=1; i<=n; i++)
				{
					if (s_part<x && (s_part+c[i]>x))
					{
						r=i;
						break;
					}
					else
						s_part+=c[i];
				}
				if (s_part<=c[r])
				{
					printf("%d\n",s_part*(n-r+2));
				//	break;
				}
				else
				{
					printf("%d\n",c[r]*(n-r+2));
				//	break;
				}
			//}*/
		}
	}
}
int main()
{
	freopen("caramizi.in","r",stdin);
	freopen("caramizi.out","w",stdout);
	citire();
	rezolvare();
	return 0;
}