Cod sursa(job #2404979)

Utilizator MoldooooooooMoldoveanu Stefan Moldoooooooo Data 13 aprilie 2019 18:07:48
Problema Farfurii Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
int N, Sol[100001], i, K, last;
int long long Biggest[100001];
bool Check[100001];
int main()
{
    fin>>N>>K;
    for(i=N-1; i>=1; --i) Biggest[i]=Biggest[i+1]+(N-i);
    i=1;
    while(Biggest[i+1]>=K && i<N)
        {Sol[i]=i; Check[i]=true; ++i;}
    Sol[i]=i+(K-Biggest[i+1]); Check[i+(K-Biggest[i+1])]=true;
    ++i; last=N;
    for(; i<=N; ++i){
        while(Check[last]==true) --last;
        Sol[i]=last; Check[last--]=true;
    }
    for(i=1; i<=N; ++i) fout<<Sol[i]<<" ";
    return 0;
}