Pagini recente » Sandbox | Diferente pentru utilizator/sunt_3l3v intre reviziile 10 si 9 | Sandbox | Sandbox | Cod sursa (job #2908643)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("farfurii.in");
ofstream cout("farfurii.out");
#define ll long long
int n,k;
void read(){
cin>>n>>k;
}
ll sumG(ll nr){
return 1LL*nr*(nr+1)/2;
}
void solve(){
ll nr,curr,lastI;
for(int i=n;i>0;i--){
nr=sumG(i-1);
if(nr>=k){
curr=nr;
lastI=i;
}
else{
break;
}
}
// cout<<curr<<" "<<lastI;
// return;
for(int i=1;i<=n-lastI;i++){
cout<<i<<" ";
}
ll pos=curr-k,cnt=0,val;
for(int i=n;i>n-lastI;i--){
if(cnt==pos){
val=i;
break;
}
cnt++;
}
cout<<val<<" ";
cnt=0;
for(int i=n;i>n-lastI;i--){
if(cnt!=pos){
cout<<i<<" ";
}
cnt++;
}
}
/// 1 2 3 4 5 6 7
/// 1 2 7 6 5 4 3
/// 1 2 5 7 6 4 3
int main(){
read();
solve();
return 0;
}