QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#819002 | #8107. Permutation | peimuda | AC ✓ | 87ms | 213564kb | C++11 | 1.6kb | 2024-12-18 11:37:05 | 2024-12-18 11:37:06 |
Judging History
answer
#include<set>
#include<map>
#include<queue>
#include<vector>
#include<algorithm>
#include<bits/stdc++.h>
#define pr pair
#define f first
#define s second
#define ll long long
#define mp make_pair
#define pll pr<ll,ll>
#define pii pr<int,int>
#define piii pr<int,pii>
using namespace std;
int hd[250005];
ll dp[250005][106];
__int128 pf[106];
int rs[250005];
int s[250005];
void add(int x,int v)
{
while(x<=250004)
{
s[x]+=v;
x+=x&-x;
}
}
int fl(int x)
{
int l=0,m,r=262144;
while(l<r-1)
{
m=l+r>>1;
if(m>250004) r=m;
else if(s[m]<=x) x-=s[m],l=m;
else r=m;
}
return r;
}
int main()
{
ios_base::sync_with_stdio(0);
int n;
ll rk;
cin>>n>>rk;
__int128 k=rk;
if(n%4==3||n%4==2)
{
cout<<"NO\n";
return 0;
}
ll tot=1ll*n*(n-1)/2;
ll hf=tot/2;
int ad=min(hf,105ll);
hf+=ad;
for(int i=n-1;i>=0;i--)
{
hd[i]=min(n-i-1ll,hf);
hf-=hd[i];
}
dp[n][0]=1;
__int128 inf=2e18;
for(int i=1;i<=ad+1;i++) pf[i]=1;
for(int i=n-1;i>=0;i--)
{
for(int j=0;j<=ad;j++)
{
dp[i][j]=min(pf[j+1]-pf[max(0,j-hd[i])],inf);
// cout<<"FF "<<i<<' '<<j<<' '<<(ll)dp[i][j]<<endl;
}
for(int j=0;j<=ad;j++) pf[j+1]=pf[j]+dp[i][j];
}
if(dp[0][ad]>1e18) cerr<<"Big"<<endl;
if(dp[0][ad]<k)
{
// cout<<"FF "<<(ll)dp[0][ad]<<endl;
cout<<"NO\n";
return 0;
}
int cr=ad;
for(int i=0;i<n;i++)
{
for(int j=min(cr,hd[i]);j>=0;j--)
{
if(dp[i+1][cr-j]>=k)
{
rs[i]=hd[i]-j;
cr-=j;
break;
}
k-=dp[i+1][cr-j];
}
}
for(int i=0;i<n;i++) add(i+1,1);
cout<<"YES\n";
for(int i=0;i<n;i++)
{
int g=fl(rs[i]);
add(g,-1);
cout<<g<<' ';
}
cout<<endl;
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 5732kb
input:
4 3
output:
YES 2 4 1 3
result:
ok 2 lines
Test #2:
score: 0
Accepted
time: 1ms
memory: 5652kb
input:
4 57
output:
NO
result:
ok single line: 'NO'
Test #3:
score: 0
Accepted
time: 1ms
memory: 7708kb
input:
1 1
output:
YES 1
result:
ok 2 lines
Test #4:
score: 0
Accepted
time: 0ms
memory: 7592kb
input:
1 2
output:
NO
result:
ok single line: 'NO'
Test #5:
score: 0
Accepted
time: 1ms
memory: 5692kb
input:
1 42
output:
NO
result:
ok single line: 'NO'
Test #6:
score: 0
Accepted
time: 1ms
memory: 7724kb
input:
4 1
output:
YES 1 4 3 2
result:
ok 2 lines
Test #7:
score: 0
Accepted
time: 1ms
memory: 7656kb
input:
4 6
output:
YES 4 1 2 3
result:
ok 2 lines
Test #8:
score: 0
Accepted
time: 1ms
memory: 7636kb
input:
4 7
output:
NO
result:
ok single line: 'NO'
Test #9:
score: 0
Accepted
time: 1ms
memory: 5600kb
input:
5 13
output:
YES 3 4 2 1 5
result:
ok 2 lines
Test #10:
score: 0
Accepted
time: 1ms
memory: 5756kb
input:
5 21
output:
YES 5 1 3 2 4
result:
ok 2 lines
Test #11:
score: 0
Accepted
time: 0ms
memory: 7720kb
input:
5 22
output:
YES 5 2 1 3 4
result:
ok 2 lines
Test #12:
score: 0
Accepted
time: 1ms
memory: 7700kb
input:
5 23
output:
NO
result:
ok single line: 'NO'
Test #13:
score: 0
Accepted
time: 1ms
memory: 5688kb
input:
8 3836
output:
YES 8 7 2 1 3 4 5 6
result:
ok 2 lines
Test #14:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
8 3837
output:
NO
result:
ok single line: 'NO'
Test #15:
score: 0
Accepted
time: 1ms
memory: 7728kb
input:
9 29228
output:
YES 9 8 4 1 2 3 5 6 7
result:
ok 2 lines
Test #16:
score: 0
Accepted
time: 1ms
memory: 7632kb
input:
9 29229
output:
NO
result:
ok single line: 'NO'
Test #17:
score: 0
Accepted
time: 0ms
memory: 7672kb
input:
9 32768
output:
NO
result:
ok single line: 'NO'
Test #18:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
2 1
output:
NO
result:
ok single line: 'NO'
Test #19:
score: 0
Accepted
time: 0ms
memory: 3572kb
input:
7 1
output:
NO
result:
ok single line: 'NO'
Test #20:
score: 0
Accepted
time: 0ms
memory: 5672kb
input:
13 296643390
output:
YES 13 12 11 7 1 2 3 4 5 6 8 9 10
result:
ok 2 lines
Test #21:
score: 0
Accepted
time: 0ms
memory: 5628kb
input:
13 296643391
output:
NO
result:
ok single line: 'NO'
Test #22:
score: 0
Accepted
time: 0ms
memory: 7728kb
input:
20 62119523114983223
output:
YES 20 19 18 17 16 10 2 1 3 4 5 6 7 8 9 11 12 13 14 15
result:
ok 2 lines
Test #23:
score: 0
Accepted
time: 0ms
memory: 7768kb
input:
20 62119523114983224
output:
YES 20 19 18 17 16 11 1 2 3 4 5 6 7 8 9 10 12 13 14 15
result:
ok 2 lines
Test #24:
score: 0
Accepted
time: 0ms
memory: 3564kb
input:
20 62119523114983225
output:
NO
result:
ok single line: 'NO'
Test #25:
score: 0
Accepted
time: 1ms
memory: 5740kb
input:
21 1
output:
YES 1 2 3 4 5 6 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7
result:
ok 2 lines
Test #26:
score: 0
Accepted
time: 1ms
memory: 5692kb
input:
21 1000000000000000000
output:
YES 17 21 14 6 9 4 3 11 7 2 20 1 18 15 12 16 5 10 8 13 19
result:
ok 2 lines
Test #27:
score: 0
Accepted
time: 1ms
memory: 7720kb
input:
44 333333333333333333
output:
YES 1 2 3 4 5 6 7 8 9 10 11 21 42 44 41 40 43 38 39 35 34 37 36 32 31 33 29 27 28 25 30 26 23 24 15 22 18 16 20 19 17 12 13 14
result:
ok 2 lines
Test #28:
score: 0
Accepted
time: 1ms
memory: 5620kb
input:
49 600000000000000000
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 37 47 49 44 46 45 48 43 42 41 39 40 35 38 33 31 36 34 30 27 32 25 28 29 26 24 23 17 22 20 19 21 18 16 15 14
result:
ok 2 lines
Test #29:
score: 0
Accepted
time: 1ms
memory: 5712kb
input:
16 738680521142
output:
YES 16 15 14 13 7 1 2 3 4 5 6 8 9 10 11 12
result:
ok 2 lines
Test #30:
score: 0
Accepted
time: 1ms
memory: 5616kb
input:
16 738680521143
output:
NO
result:
ok single line: 'NO'
Test #31:
score: 0
Accepted
time: 0ms
memory: 3644kb
input:
350 702274833889168257
output:
NO
result:
ok single line: 'NO'
Test #32:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
347 823694565238057857
output:
NO
result:
ok single line: 'NO'
Test #33:
score: 0
Accepted
time: 1ms
memory: 7664kb
input:
348 548514836018174081
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #34:
score: 0
Accepted
time: 1ms
memory: 5612kb
input:
349 1000000000000000000
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #35:
score: 0
Accepted
time: 0ms
memory: 7656kb
input:
17 11501573822788
output:
YES 17 16 15 14 11 1 2 3 4 5 6 7 8 9 10 12 13
result:
ok 2 lines
Test #36:
score: 0
Accepted
time: 1ms
memory: 5716kb
input:
17 11501573822789
output:
NO
result:
ok single line: 'NO'
Test #37:
score: 0
Accepted
time: 0ms
memory: 5752kb
input:
1536 1000000000000000000
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #38:
score: 0
Accepted
time: 2ms
memory: 9776kb
input:
1533 1
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #39:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
1534 639944301316494081
output:
NO
result:
ok single line: 'NO'
Test #40:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
1535 133749702370803553
output:
NO
result:
ok single line: 'NO'
Test #41:
score: 0
Accepted
time: 0ms
memory: 5688kb
input:
12 25598186
output:
YES 12 11 10 4 1 2 3 5 6 7 8 9
result:
ok 2 lines
Test #42:
score: 0
Accepted
time: 0ms
memory: 7740kb
input:
12 25598187
output:
NO
result:
ok single line: 'NO'
Test #43:
score: 0
Accepted
time: 3ms
memory: 9840kb
input:
5000 1
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #44:
score: 0
Accepted
time: 0ms
memory: 9796kb
input:
4997 577621398254762881
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #45:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
4998 1000000000000000000
output:
NO
result:
ok single line: 'NO'
Test #46:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
4999 1000000000000000000
output:
NO
result:
ok single line: 'NO'
Test #47:
score: 0
Accepted
time: 1ms
memory: 5656kb
input:
8 3836
output:
YES 8 7 2 1 3 4 5 6
result:
ok 2 lines
Test #48:
score: 0
Accepted
time: 1ms
memory: 5644kb
input:
8 3837
output:
NO
result:
ok single line: 'NO'
Test #49:
score: 0
Accepted
time: 7ms
memory: 34448kb
input:
30000 15298495309447071
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #50:
score: 0
Accepted
time: 3ms
memory: 30652kb
input:
29997 253859976519879617
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #51:
score: 0
Accepted
time: 0ms
memory: 3604kb
input:
29998 1
output:
NO
result:
ok single line: 'NO'
Test #52:
score: 0
Accepted
time: 0ms
memory: 3576kb
input:
29999 1000000000000000000
output:
NO
result:
ok single line: 'NO'
Test #53:
score: 0
Accepted
time: 1ms
memory: 5744kb
input:
5 10
output:
YES 3 2 4 5 1
result:
ok 2 lines
Test #54:
score: 0
Accepted
time: 1ms
memory: 7632kb
input:
5 25
output:
NO
result:
ok single line: 'NO'
Test #55:
score: 0
Accepted
time: 20ms
memory: 68052kb
input:
75000 1000000000000000000
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #56:
score: 0
Accepted
time: 28ms
memory: 69424kb
input:
74997 1
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #57:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
74998 952975592247715841
output:
NO
result:
ok single line: 'NO'
Test #58:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
74999 563899854863562881
output:
NO
result:
ok single line: 'NO'
Test #59:
score: 0
Accepted
time: 1ms
memory: 7728kb
input:
20 62119523114983182
output:
YES 20 19 18 17 16 9 1 2 4 3 5 7 6 8 10 11 12 13 14 15
result:
ok 2 lines
Test #60:
score: 0
Accepted
time: 0ms
memory: 7632kb
input:
20 62119523114983324
output:
NO
result:
ok single line: 'NO'
Test #61:
score: 0
Accepted
time: 55ms
memory: 112588kb
input:
125000 890645059675041665
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #62:
score: 0
Accepted
time: 50ms
memory: 112708kb
input:
124997 1
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #63:
score: 0
Accepted
time: 0ms
memory: 3604kb
input:
124998 873954992112723841
output:
NO
result:
ok single line: 'NO'
Test #64:
score: 0
Accepted
time: 0ms
memory: 3604kb
input:
124999 248632969637282529
output:
NO
result:
ok single line: 'NO'
Test #65:
score: 0
Accepted
time: 1ms
memory: 5684kb
input:
17 11501573822775
output:
YES 17 16 15 14 9 2 3 1 4 5 6 7 8 10 11 12 13
result:
ok 2 lines
Test #66:
score: 0
Accepted
time: 0ms
memory: 7624kb
input:
17 11501573823343
output:
NO
result:
ok single line: 'NO'
Test #67:
score: 0
Accepted
time: 59ms
memory: 152536kb
input:
175000 1000000000000000000
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #68:
score: 0
Accepted
time: 51ms
memory: 153816kb
input:
174997 328322156846141249
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #69:
score: 0
Accepted
time: 0ms
memory: 3580kb
input:
174998 184010129245469601
output:
NO
result:
ok single line: 'NO'
Test #70:
score: 0
Accepted
time: 0ms
memory: 3576kb
input:
174999 988653544556724225
output:
NO
result:
ok single line: 'NO'
Test #71:
score: 0
Accepted
time: 0ms
memory: 7628kb
input:
16 738680521137
output:
YES 16 15 14 13 6 1 2 3 4 7 5 8 9 10 11 12
result:
ok 2 lines
Test #72:
score: 0
Accepted
time: 0ms
memory: 7688kb
input:
16 738680521147
output:
NO
result:
ok single line: 'NO'
Test #73:
score: 0
Accepted
time: 87ms
memory: 213560kb
input:
250000 265999253667994753
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #74:
score: 0
Accepted
time: 60ms
memory: 213564kb
input:
249997 1000000000000000000
output:
YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...
result:
ok 2 lines
Test #75:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
249998 994057636750856961
output:
NO
result:
ok single line: 'NO'
Test #76:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
249999 728689378265228289
output:
NO
result:
ok single line: 'NO'