提出 #69680268
ソースコード 拡げる
#include<iostream>
#include<queue>
#define lc (u<<1)
#define rc (lc|1)
#define mid ((l+r)>>1)
#define Lc lc,l,mid
#define Rc rc,mid+1,r
#define U 1,1,n
#define pii pair<int,int>
#define fi first
#define se second
using namespace std;
const int N=5e5+10;
int n,k,rk,p[N],r[N];
priority_queue <int> q;
struct sgmtt
{
int w[N<<2],pos[N<<2];
void pushup(int u)
{
if(w[lc]>w[rc]) w[u]=w[lc],pos[u]=pos[lc];
else w[u]=w[rc],pos[u]=pos[rc];
}
void build(int u,int l,int r)
{
if(l==r) {cin>>p[l],w[u]=p[l],pos[u]=l; return;}
build(Lc),build(Rc),pushup(u);
}
void change(int u,int l,int r,int p)
{
if(l==r) {w[u]=0; return;}
if(p<=mid) change(Lc,p);
else change(Rc,p);
pushup(u);
}
pii query(int u,int l,int r,int L,int R)
{
if(l>=L&&r<=R) return {w[u],pos[u]};
pii tr={-1,-1};
if(L<=mid) tr=query(Lc,L,R);
if(R>mid)
{
pii rr=query(Rc,L,R);
if(rr.fi>tr.fi) tr=rr;
}
return tr;
}
}T;
void chk(int i) {if(T.query(U,max(1,i-k+1),min(n,i+k-1)).fi==p[i]) q.push(i);}
int main()
{
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n>>k,T.build(U),rk=n;
for(int i=1;i<=n;i++) chk(i);
while(q.size())
{
int i=q.top(); q.pop(),r[i]=rk--,T.change(U,i);
if(k>1&&i>1) chk(T.query(U,max(1,i-k+1),i-1).se);
if(k>1&&i<n) chk(T.query(U,i+1,min(n,i+k-1)).se);
}
for(int i=1;i<=n;i++) cout<<r[i]<<'\n';
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - Wide Swap |
| ユーザ | KSCD_ |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 2000 |
| コード長 | 1421 Byte |
| 結果 | AC |
| 実行時間 | 776 ms |
| メモリ | 18008 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 2000 / 2000 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 000.txt | AC | 1 ms | 3480 KiB |
| 001.txt | AC | 1 ms | 3548 KiB |
| 002.txt | AC | 1 ms | 3508 KiB |
| 003.txt | AC | 1 ms | 3556 KiB |
| 004.txt | AC | 1 ms | 3488 KiB |
| 005.txt | AC | 1 ms | 3372 KiB |
| 006.txt | AC | 1 ms | 3420 KiB |
| 007.txt | AC | 1 ms | 3492 KiB |
| 008.txt | AC | 1 ms | 3580 KiB |
| 009.txt | AC | 2 ms | 3552 KiB |
| 010.txt | AC | 3 ms | 3608 KiB |
| 011.txt | AC | 2 ms | 3640 KiB |
| 012.txt | AC | 2 ms | 3500 KiB |
| 013.txt | AC | 3 ms | 3544 KiB |
| 014.txt | AC | 3 ms | 3644 KiB |
| 015.txt | AC | 3 ms | 3640 KiB |
| 016.txt | AC | 3 ms | 3548 KiB |
| 017.txt | AC | 2 ms | 3552 KiB |
| 018.txt | AC | 2 ms | 3548 KiB |
| 019.txt | AC | 2 ms | 3512 KiB |
| 020.txt | AC | 1 ms | 3528 KiB |
| 021.txt | AC | 1 ms | 3508 KiB |
| 022.txt | AC | 2 ms | 3556 KiB |
| 023.txt | AC | 2 ms | 3548 KiB |
| 024.txt | AC | 2 ms | 3552 KiB |
| 025.txt | AC | 2 ms | 3508 KiB |
| 026.txt | AC | 3 ms | 3424 KiB |
| 027.txt | AC | 2 ms | 3604 KiB |
| 028.txt | AC | 2 ms | 3464 KiB |
| 029.txt | AC | 1 ms | 3560 KiB |
| 030.txt | AC | 2 ms | 3696 KiB |
| 031.txt | AC | 2 ms | 3560 KiB |
| 032.txt | AC | 2 ms | 3476 KiB |
| 033.txt | AC | 2 ms | 3608 KiB |
| 034.txt | AC | 2 ms | 3692 KiB |
| 035.txt | AC | 2 ms | 3548 KiB |
| 036.txt | AC | 2 ms | 3696 KiB |
| 037.txt | AC | 2 ms | 3644 KiB |
| 038.txt | AC | 2 ms | 3640 KiB |
| 039.txt | AC | 294 ms | 16756 KiB |
| 040.txt | AC | 524 ms | 15988 KiB |
| 041.txt | AC | 776 ms | 15908 KiB |
| 042.txt | AC | 719 ms | 15908 KiB |
| 043.txt | AC | 771 ms | 15948 KiB |
| 044.txt | AC | 513 ms | 15896 KiB |
| 045.txt | AC | 364 ms | 16100 KiB |
| 046.txt | AC | 689 ms | 15916 KiB |
| 047.txt | AC | 732 ms | 15940 KiB |
| 048.txt | AC | 417 ms | 15972 KiB |
| 049.txt | AC | 171 ms | 9168 KiB |
| 050.txt | AC | 385 ms | 13936 KiB |
| 051.txt | AC | 270 ms | 9464 KiB |
| 052.txt | AC | 692 ms | 15224 KiB |
| 053.txt | AC | 29 ms | 6448 KiB |
| 054.txt | AC | 473 ms | 14280 KiB |
| 055.txt | AC | 3 ms | 3680 KiB |
| 056.txt | AC | 52 ms | 4960 KiB |
| 057.txt | AC | 237 ms | 9500 KiB |
| 058.txt | AC | 71 ms | 6204 KiB |
| 059.txt | AC | 150 ms | 18008 KiB |
| 060.txt | AC | 330 ms | 15956 KiB |
| 061.txt | AC | 294 ms | 16700 KiB |
| 062.txt | AC | 334 ms | 15948 KiB |
| 063.txt | AC | 301 ms | 16464 KiB |
| 064.txt | AC | 332 ms | 15908 KiB |
| 065.txt | AC | 312 ms | 16320 KiB |
| 066.txt | AC | 333 ms | 15944 KiB |
| 067.txt | AC | 319 ms | 16268 KiB |
| 068.txt | AC | 336 ms | 15932 KiB |
| 069.txt | AC | 418 ms | 16012 KiB |
| 070.txt | AC | 438 ms | 15904 KiB |
| 071.txt | AC | 434 ms | 15920 KiB |
| 072.txt | AC | 298 ms | 16444 KiB |
| 073.txt | AC | 449 ms | 15960 KiB |
| 074.txt | AC | 292 ms | 16740 KiB |
| 075.txt | AC | 488 ms | 15908 KiB |
| 076.txt | AC | 481 ms | 16004 KiB |
| 077.txt | AC | 461 ms | 16000 KiB |
| 078.txt | AC | 449 ms | 15920 KiB |
| 079.txt | AC | 98 ms | 8824 KiB |
| 080.txt | AC | 17 ms | 4184 KiB |
| 081.txt | AC | 30 ms | 4792 KiB |
| 082.txt | AC | 227 ms | 9488 KiB |
| 083.txt | AC | 55 ms | 6216 KiB |
| 084.txt | AC | 64 ms | 6240 KiB |
| 085.txt | AC | 57 ms | 6048 KiB |
| 086.txt | AC | 14 ms | 4164 KiB |
| 087.txt | AC | 125 ms | 8708 KiB |
| 088.txt | AC | 59 ms | 6376 KiB |
| 089.txt | AC | 142 ms | 17980 KiB |
| 090.txt | AC | 369 ms | 15900 KiB |
| sample-01.txt | AC | 1 ms | 3424 KiB |
| sample-02.txt | AC | 1 ms | 3640 KiB |
| sample-03.txt | AC | 1 ms | 3484 KiB |