Cod sursa(job #1071871)

Utilizator ELHoriaHoria Cretescu ELHoria Data 3 ianuarie 2014 17:00:08
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.77 kb
#include <fstream>
#define i64 long long
 
using namespace std;
 
ifstream cin("farfurii.in");
ofstream cout("farfurii.out");
 
int N;
i64 K;
 
int main()
{
    cin>>N>>K;
    for(int i = 1;i <= N && K > 0;i++) {
        i64 d = N - i;
        i64 maxD = (d*(d - 1))>>1ll;
        if(maxD > K) {
            cout<<i<<" ";
        }
        else
        if(maxD == K) {
            cout<<i<<" ";
            for(int j = N;j > i;j--) {
                cout<<j<<" ";
            }
            K = 0;
        } else {
            cout<<i + K - maxD<<" ";
            for(int j = N;j >= i;j--) {
                if(j != i + K - maxD) {
                    cout<<j<<" ";
                }
            }
            K = 0;
        }
    }
    return 0;
}