Cod sursa(job #2570811)
Utilizator | Danut Aldea DanutAldea | Data | 4 martie 2020 19:29:51 |
---|---|---|---|
Problema | Farfurii | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <fstream>
#include <iostream>
#include <bitset>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
long long sol[100001],n,k,i,j,l;
bitset <100001> f;
int main(){
fin>>n>>k;
i=1;
while(i*(i+1)/2<=k)
i++;
k-=i*(i-1)/2;
if(k){
l=n-i-1;
}else{
l=n-i;
}
for(i=1;i<=l;i++)
sol[i]=i,f[i]=1;
if(k){
sol[l+1]=l+k+1;
f[l+k+1]=1;
l++;
}
l++;
for(i=n;l<=n;l++,i--){
if(f[i]){
l--;
continue;
}
sol[l]=i;
}
for(i=1;i<=n;i++)
fout<<sol[i]<<" ";
cout<<n;
return 0;
}