Cod sursa(job #793325)

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

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

int main()
{
	int n,k;
	freopen("farfurii.in","r", stdin);
	freopen("farfurii.out","w", stdout);
	scanf("%d %d",&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)
			{
				printf("%d ",*it);
				mp.erase(it);
				break;
			}
			int x=mai_mari+mai_mici;
			if( mai_mici + x*(x-1)/2 >=c)
			{
				c-=mai_mici;
				printf("%d ",*it);
				mp.erase(it);
				break;
			}
		}
	}

	return 0;
}