Pagini recente » Cod sursa (job #1246983) | Cod sursa (job #2036898) | Cod sursa (job #83928) | Cod sursa (job #58979) | Cod sursa (job #2858733)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("farfurii.in");
ofstream g("farfurii.out");
int 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()
{
int 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;
}