Codeforces Round #592 (Div. 2)G(模拟)

#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
long long a[1000007],b[1000007];
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
long long k;
cin>>n>>k;
if(k<1ll*n*(n+1)>>1){
cout<<-1;
return 0;
}
long long gap=1ll*n*(n+1)>>1;
for(int i=1;i<=n;++i)
a[i]=b[i]=i;
for(int i=1,j=n;i<j;++i)
if(gap+j-i<=k){
gap+=j-i;
swap(a[i],a[j--]);
}
cout<<gap<<" ";
for(int i=1;i<=n;++i)
cout<<a[i]<<" ";
puts("");
for(int i=1;i<=n;++i)
cout<<b[i]<<" ";
return 0;
}