Cod sursa(job #3292968)

Utilizator Andrei1209Andrei Mircea Andrei1209 Data 9 aprilie 2025 21:18:32
Problema Farfurii Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");

vector <int> val;
int n, k, sol[100000 + 5];
void afis()
{
    for ( int i = 0; i < val.size(); ++i )
        fout << val[i] << " ";
    fout << endl;
}
int main()
{
    fin >> n >> k;
    int poz;
    long long Smax = n * ( n - 1) / 2, i;
    for ( i = 1; i <= n; ++i )
        val.push_back(i);
    for ( poz = 1; poz <= n; ++poz )
    {
        i = max( 0LL, -Smax + (long long)val.size() + k - 1);
        i = min (i, (long long)val.size());
        Smax -= ( (long long)val.size() - i - 1);
        sol[poz] = val[i];
        val.erase( val.begin() + i);
       // fout << " i = " << i << " Smax = " << Smax << endl;
       // afis();
    }

    for ( i = 1; i<= n; ++i )
        fout << sol[i] << " ";
    return 0;
}