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
AC × 3
AC × 94
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