Cod sursa(job #2902657)

Utilizator widzAndrei-Daniel Tava widz Data 16 mai 2022 17:52:09
Problema Farfurii Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;


int main()
{
	ifstream in("farfurii.in");
	ofstream out("farfurii.out");
	vector<int> nrs;
	int n, pos;
	long long k,inv;
	in >> n >> k;
	in.close();
	for (int i = 0; i < n; ++i)
	{
		nrs.push_back(i + 1);
	}
	inv = (n-1) * (n - 2) / 2;
	pos = 0;
	for(int i=0;i<n;++i)
	{
		if(inv > k)
		{
			out << nrs[pos] << " ";
			++pos;
		}
		else
		{
			int disp = k - inv;
			k = inv;
			int j = pos;
			while(disp || nrs[j] < 0)
			{
				if (nrs[j] > 0)
					--disp;
				++j;
				
			}
			out << nrs[j] << " ";
			nrs[j] = -1;
		}
		inv -= n - i - 2;
		while (nrs[pos] < 0 && pos < n-1)
			++pos;
	}
	out.close();
	return 0;
}