Cod sursa(job #2439001)

Utilizator tifui.alexandruTifui Ioan Alexandru tifui.alexandru Data 14 iulie 2019 15:44:56
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
#define ll long long

using namespace std;

ifstream f("farfurii.in");
ofstream g("farfurii.out");

int main(){

    int n;
    ll k;
    f>>n>>k;
    vector <int> v(n);
    for(int i=0;i<n;i++)
        v[i]=i+1;

    int x=1;
    while(1LL*x*(x-1)/2<k)
        ++x;

    if(1LL*x*(x-1)/2==k){

        reverse(v.begin()+n-x,v.end());
    }
    else{

        int y=n+k-1LL*x*(x-1)/2;
        v[n-x]=y;
        int cnt=n;
        for(int i=n-x+1;i<n;i++){

            if(cnt==y)
                --cnt;
            v[i]=cnt;
            --cnt;
        }
    }

    for(auto &it:v)
        g<<it<<' ';

    return 0;
}