Cod sursa(job #631842)

Utilizator lucian666Vasilut Lucian lucian666 Data 9 noiembrie 2011 20:46:22
Problema Ghiozdan Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>
using namespace std;
ofstream fout("ghiozdan.out");
int v[100],n,G,a[100],s;
void quick(int st,int dr);
void citire();
void afis();
void rez(int &);
int main()
{
	citire();
	quick(1,n);
	int rezu;
	rez(rezu);
	for(int i=1;i<=rezu;i++)
		s+=v[i];
	fout<<s<<" "<<rezu;
	fout<<endl;
	for(int i=1;i<=rezu;i++)
		fout<<v[i]<<endl;
	return 0;
}
void citire()
{
	ifstream fin("ghiozdan.in");
	fin>>n>>G;
	for(int i=1;i<=n;i++)
		fin>>v[i];
}
void quick(int st,int dr)
{
	if(st<dr)
	{
		int i=st,j=dr,d=0;
		while(i<j)
		{
			if(v[i]>v[j])
			{
				int aux=v[i];
				v[i]=v[j];
				v[j]=aux;
				d=1-d;
			}
			if(d==0)
				j--;
			else
				i++;
		}
		quick(st,i-1);
		quick(i+1,dr);
	}
}
void rez(int &rez)
{
	
	int g=G;
	for(int i=1;i<=n;i++)
		if(g==1||g==0)
			return;
		else
		{
		if(v[i]<=g)
		{	
		rez++;;
			g-=v[i];
		}
		}
}