Cod sursa(job #793327)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 2 octombrie 2012 16:14:55
Problema Farfurii Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <set>
using namespace std;

set<int> mp;
set<int>::iterator it;

int main()
{
	int n,k;
	ifstream f;
	f.open("farfurii.in");
	ofstream g;
	g.open("farfurii.out");
	f>>n>>k;
	
	for(int i=1;i<=n;i++)
		mp.insert(i);
	int c=k;
	for(int i=1;i<=n;i++)
	{
		int mai_mari=mp.size()-1;
		int mai_mici=0;
		for(it=mp.begin();it!=mp.end();it++,mai_mari--,mai_mici++)
		{
			int n=mp.size()-1;
			if(n*(n-1)/2>k)
			{
				g<<*it<<" ";
				mp.erase(it);
				break;
			}
			else
			{
				int x=mai_mari+mai_mici;
				if( mai_mici + x*(x-1)/2 >=c)
				{
					c-=mai_mici;
					g<<*it<<" ";
					mp.erase(it);
					break;
				}
			}
		}
	}

	return 0;
}