Submission #26951256
Source Code Expand
#include<bits/stdc++.h>
//#define int long long
#define pb push_back
#define mp make_pair
#define x first
#define y second
#define WT int TT=read();while(TT--)
#define NO puts("NO");
#define YES puts("YES");
using namespace std;
inline int read()
{
char c=getchar();int x=0;bool f=0;
for(;!isdigit(c);c=getchar())f^=!(c^45);
for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48);
if(f)x=-x;return x;
}
const int inf=1e9;
const int M=5e5+10;
int n,k,a[M],b[M],p[M],ans[M],vis[M];
priority_queue<int>q;
struct segment_tree
{
struct tree
{
int tl,tr,val;
}t[M<<2];
#define l(x) t[(x)].tl
#define r(x) t[(x)].tr
#define val(x) t[(x)].val
#define lson k<<1
#define rson k<<1|1
void pushup(int k){val(k)=max(val(lson),val(rson));}
void build(int k,int l,int r)
{
l(k)=l,r(k)=r;
if (l==r){val(k)=a[l];return;}
int Mid=(l+r)>>1;
build(lson,l,Mid),build(rson,Mid+1,r);
pushup(k);
}
void update(int k,int l)
{
if (l(k)==l&&r(k)==l){val(k)=-inf;return;}
if (l(k)>l||r(k)<l)return;
update(lson,l),update(rson,l);
pushup(k);
}
int query(int k,int l,int r)
{
if (l(k)>=l&&r(k)<=r)return val(k);
if (l(k)>r||r(k)<l)return -inf;
return max(query(lson,l,r),query(rson,l,r));
}
}T;
int check(int x){return a[x]==T.query(1,x-k+1,x+k-1);}
signed main()
{
n=read(),k=read();
for (int i=1;i<=n;i++)a[i]=read(),b[a[i]]=i;
T.build(1,1,n);
for (int i=1;i<=n;i++)
if (check(i))q.push(i),vis[i]=1;//,cout<<i<<' ';
for (int i=n;i>=1;i--)
{
int x=q.top();q.pop();p[i]=x;
T.update(1,x);
int x1=T.query(1,x-k+1,x-1);
if (x1!=-inf&&check(b[x1]))q.push(b[x1]),vis[b[x1]]=1;
x1=T.query(1,x+1,x+k-1);
if (x1!=-inf&&check(b[x1]))q.push(b[x1]),vis[b[x1]]=1;
}
for (int i=1;i<=n;i++)ans[p[i]]=i;
for (int i=1;i<=n;i++)printf("%d\n",ans[i]);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Wide Swap |
| User | pigstd |
| Language | C++ (GCC 9.2.1) |
| Score | 2000 |
| Code Size | 1881 Byte |
| Status | AC |
| Exec Time | 1302 ms |
| Memory | 27976 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 2000 / 2000 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample-01.txt, sample-02.txt, sample-03.txt |
| All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, 045.txt, 046.txt, 047.txt, 048.txt, 049.txt, 050.txt, 051.txt, 052.txt, 053.txt, 054.txt, 055.txt, 056.txt, 057.txt, 058.txt, 059.txt, 060.txt, 061.txt, 062.txt, 063.txt, 064.txt, 065.txt, 066.txt, 067.txt, 068.txt, 069.txt, 070.txt, 071.txt, 072.txt, 073.txt, 074.txt, 075.txt, 076.txt, 077.txt, 078.txt, 079.txt, 080.txt, 081.txt, 082.txt, 083.txt, 084.txt, 085.txt, 086.txt, 087.txt, 088.txt, 089.txt, 090.txt, sample-01.txt, sample-02.txt, sample-03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 000.txt | AC | 9 ms | 3568 KiB |
| 001.txt | AC | 2 ms | 3532 KiB |
| 002.txt | AC | 2 ms | 3576 KiB |
| 003.txt | AC | 2 ms | 3608 KiB |
| 004.txt | AC | 2 ms | 3524 KiB |
| 005.txt | AC | 2 ms | 3524 KiB |
| 006.txt | AC | 3 ms | 3584 KiB |
| 007.txt | AC | 2 ms | 3524 KiB |
| 008.txt | AC | 2 ms | 3612 KiB |
| 009.txt | AC | 9 ms | 3644 KiB |
| 010.txt | AC | 7 ms | 3660 KiB |
| 011.txt | AC | 6 ms | 3652 KiB |
| 012.txt | AC | 6 ms | 3700 KiB |
| 013.txt | AC | 7 ms | 3624 KiB |
| 014.txt | AC | 13 ms | 3668 KiB |
| 015.txt | AC | 8 ms | 3676 KiB |
| 016.txt | AC | 7 ms | 3672 KiB |
| 017.txt | AC | 6 ms | 3668 KiB |
| 018.txt | AC | 7 ms | 3736 KiB |
| 019.txt | AC | 6 ms | 3612 KiB |
| 020.txt | AC | 3 ms | 3604 KiB |
| 021.txt | AC | 3 ms | 3600 KiB |
| 022.txt | AC | 7 ms | 3636 KiB |
| 023.txt | AC | 8 ms | 3700 KiB |
| 024.txt | AC | 10 ms | 3720 KiB |
| 025.txt | AC | 6 ms | 3664 KiB |
| 026.txt | AC | 7 ms | 3604 KiB |
| 027.txt | AC | 5 ms | 3544 KiB |
| 028.txt | AC | 5 ms | 3648 KiB |
| 029.txt | AC | 5 ms | 3720 KiB |
| 030.txt | AC | 5 ms | 3616 KiB |
| 031.txt | AC | 5 ms | 3668 KiB |
| 032.txt | AC | 6 ms | 3616 KiB |
| 033.txt | AC | 6 ms | 3648 KiB |
| 034.txt | AC | 7 ms | 3672 KiB |
| 035.txt | AC | 6 ms | 3664 KiB |
| 036.txt | AC | 5 ms | 3680 KiB |
| 037.txt | AC | 6 ms | 3676 KiB |
| 038.txt | AC | 9 ms | 3708 KiB |
| 039.txt | AC | 497 ms | 26576 KiB |
| 040.txt | AC | 826 ms | 25864 KiB |
| 041.txt | AC | 1282 ms | 25832 KiB |
| 042.txt | AC | 1197 ms | 25952 KiB |
| 043.txt | AC | 1302 ms | 25848 KiB |
| 044.txt | AC | 841 ms | 25896 KiB |
| 045.txt | AC | 615 ms | 26084 KiB |
| 046.txt | AC | 1148 ms | 25860 KiB |
| 047.txt | AC | 1232 ms | 25884 KiB |
| 048.txt | AC | 671 ms | 25900 KiB |
| 049.txt | AC | 272 ms | 13864 KiB |
| 050.txt | AC | 645 ms | 21176 KiB |
| 051.txt | AC | 446 ms | 14444 KiB |
| 052.txt | AC | 1149 ms | 24676 KiB |
| 053.txt | AC | 76 ms | 8712 KiB |
| 054.txt | AC | 787 ms | 22344 KiB |
| 055.txt | AC | 14 ms | 3788 KiB |
| 056.txt | AC | 91 ms | 6316 KiB |
| 057.txt | AC | 362 ms | 14540 KiB |
| 058.txt | AC | 120 ms | 7188 KiB |
| 059.txt | AC | 365 ms | 27976 KiB |
| 060.txt | AC | 545 ms | 25940 KiB |
| 061.txt | AC | 498 ms | 26656 KiB |
| 062.txt | AC | 542 ms | 25832 KiB |
| 063.txt | AC | 527 ms | 26356 KiB |
| 064.txt | AC | 547 ms | 25900 KiB |
| 065.txt | AC | 543 ms | 26360 KiB |
| 066.txt | AC | 545 ms | 25948 KiB |
| 067.txt | AC | 558 ms | 26224 KiB |
| 068.txt | AC | 549 ms | 25960 KiB |
| 069.txt | AC | 621 ms | 25944 KiB |
| 070.txt | AC | 642 ms | 25928 KiB |
| 071.txt | AC | 653 ms | 25880 KiB |
| 072.txt | AC | 478 ms | 26308 KiB |
| 073.txt | AC | 678 ms | 25844 KiB |
| 074.txt | AC | 457 ms | 26664 KiB |
| 075.txt | AC | 737 ms | 25944 KiB |
| 076.txt | AC | 724 ms | 25856 KiB |
| 077.txt | AC | 697 ms | 25876 KiB |
| 078.txt | AC | 675 ms | 25916 KiB |
| 079.txt | AC | 153 ms | 12548 KiB |
| 080.txt | AC | 33 ms | 4732 KiB |
| 081.txt | AC | 56 ms | 5852 KiB |
| 082.txt | AC | 337 ms | 14612 KiB |
| 083.txt | AC | 93 ms | 8284 KiB |
| 084.txt | AC | 107 ms | 8448 KiB |
| 085.txt | AC | 99 ms | 7976 KiB |
| 086.txt | AC | 29 ms | 4760 KiB |
| 087.txt | AC | 190 ms | 12420 KiB |
| 088.txt | AC | 99 ms | 8596 KiB |
| 089.txt | AC | 362 ms | 27952 KiB |
| 090.txt | AC | 521 ms | 25872 KiB |
| sample-01.txt | AC | 6 ms | 3536 KiB |
| sample-02.txt | AC | 4 ms | 3620 KiB |
| sample-03.txt | AC | 3 ms | 3644 KiB |