Cod sursa(job #2453126)

Utilizator isa_tudor_andreiAndrei Tudor isa_tudor_andrei Data 2 septembrie 2019 15:45:33
Problema Farfurii Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>
#define NMAX 100000

using namespace std;

ifstream fin("farfurii.in");
ofstream fout("farfurii.out");

int v[NMAX + 1];

int main() {
    int n, k, j;
    fin>>n>>k;
    int i = 0;
    while( i * (i + 1) / 2 < k )
      i ++;
    i --;
    for( j = 1; j <= n; j ++ ) {
      if( n - j - 1 >= i  )
        v[j] = j;
      else {
        int poz = 2 * n - i - j;
        v[poz] = j;
      }
    }
    int rest = k - (i + 1) * i / 2;
    j = n;
    int frontpoz = n - i - 1;
    while( rest -- ) {
      swap(v[j],v[frontpoz]);
      j --;
    }
    for( i = 1; i <= n; i ++ )
      fout<<v[i]<<" ";
    return 0;
}