Cod sursa(job #2858734)

Utilizator toda.emanuelatoda emanuela toda.emanuela Data 28 februarie 2022 12:55:54
Problema Farfurii Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("farfurii.in");
ofstream g("farfurii.out");
long long arb[200001],v[100001],n,k,z,val,p=2;
int maxi(int a,int b)
{
    if(a>b) return a;
    return b;
}
void build(int st,int dr, int poz)
{
    if(st==dr)
    {
        arb[poz]=st;
        return;
    }
    if(val<poz) val=poz;
    int mij=(st+dr)/2;
    build(st,mij,2*poz);
    build(mij+1,dr,2*poz+1);
    arb[poz]=maxi(arb[2*poz],arb[2*poz+1]);

}

int main()
{
    long long i,dif;
    f>>n>>k;
    //build(1,n,1);
    p=1;
    while(p*(p+1)/2<k) p++;
    for(i=1;i<n-p;i++)
        g<<i<<" ";

    for(i=n;i>=p-1;i--)
        v[n-i+1]=i;

    dif=v[1]-v[p+1];
    dif=dif*(dif+1)/2;
    val=dif-k+1;
    g<<v[val]<<" ";
    for(i=1;i<=p+1;i++)
        if(i!=val)
            g<<v[i]<<" ";
    return 0;
}