Pagini recente » Cod sursa (job #503838) | Cod sursa (job #2785018) | Cod sursa (job #2024205) | Cod sursa (job #1309870) | Cod sursa (job #1336351)
#include <fstream>
#include <cmath>
using namespace std;
long int n, p, x, de_scazut, dif, nr;
short afis[100001];
int main()
{
ifstream in("farfurii.in");
ofstream out("farfurii.out");
in>>n>>p;
x=sqrt(2*p);
if(x*(x+1)/2>=p)
{
x++;
}
else x+=2;
nr=x*(x-1)/2;
dif=nr-p;
de_scazut=x-1;
for(int i=1; i<=n-x; ++i)
{
out<<i<<" ";
afis[i]=1;
}
while(dif!=0)
{
if(dif>=de_scazut)
{
out<<n-de_scazut<<" ";
afis[n-de_scazut]=1;
dif-=de_scazut;
de_scazut--;
}
else
{
out<<n-dif<<" ";
afis[n-dif]=1;
dif=0;
}
}
for(int i=n; i>=1; --i)
if(afis[i]==0)
out<<i<<" ";
out<<"\n";
in.close();
out.close();
return 0;
}