Cod sursa(job #1060808)

Utilizator Robert29FMI Tilica Robert Robert29 Data 18 decembrie 2013 19:29:28
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.75 kb
#include<stdio.h>

int sol[100001];
bool viz[100001];
int main()
{
	FILE*f = fopen("farfurii.in", "r");
	long long  n, k;
	fscanf(f, "%lld %lld", &n, &k);
	fclose(f);
	
	
	for (int i = 1; i <= n; ++i)
	{
		if ((n - i) * (n-i - 1) / 2 >= k)
		{
			sol[i] = i;
		}
 		else
		{
			k -= (n - i) * (n - i - 1) / 2;
			int j;
			for (j = i; j <= n; ++j)
			{
				if (k == j - i)
				{
					sol[i] = j;
					int I = i;
					for (int ii = n; ii >= I; --ii)
					{
						if (ii == j)
							continue;
						else
							sol[++i] = ii;
					}
					break;
				}
			}


			break;
		}
			
	}



	FILE*g = fopen("farfurii.out", "w");
	for (int i = 1; i <= n; ++i)
	{
		fprintf(g, "%d ", sol[i]);
	}
	fclose(g);

	return 0;
}