Cod sursa(job #1446722)

Utilizator tamionvTamio Vesa Nakajima tamionv Data 2 iunie 2015 17:36:51
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <iostream>
using namespace std;

constexpr long long sum_of(const long long n){
	return n*(n+1)/2; }

long long largest_sum_smaller_than(const long long x){
	long long i = 0;
	for(long long s = 0; s <= x; ++i, s += i);
	return i-1; }

int main(){
	ifstream f("farfurii.in");
	ofstream g("farfurii.out");
	long long n, k;
	f >> n >> k;

	const long long trebuie_compacte = largest_sum_smaller_than(k)+1,
		numar_scoase_altfel = k-sum_of(trebuie_compacte-1),
		pivot = n - trebuie_compacte + numar_scoase_altfel;
	for(long long i = 1; i+trebuie_compacte < n; ++i){
		g << i << ' '; }
	g << pivot << ' ';
	for(long long i = n; i > pivot; --i){
		g << i << ' '; }
	for(long long i = pivot-1; i+trebuie_compacte >= n; --i){
		g << i << ' '; }
	return 0; }