Submission #3050433
Source Code Expand
#include <iostream> #include <set> #include <cstdio> #include <cstring> #include <queue> using namespace std; const int MAXN = 500005; struct Edge{ int to,next; }e[MAXN<<1]; int p[MAXN],q[MAXN],n,head[MAXN],in[MAXN],ord[MAXN],val[MAXN],k; set<int>ele; typedef set<int>::iterator SI; priority_queue<int>pq; int mx[MAXN<<2]; int ql,qr,qval,qpos; void update(int i,int l,int r) { if(l==r)return void(mx[i]=qval); int mid=(l+r)>>1,lc=i<<1,rc=lc|1; if(qpos<=mid)update(lc,l,mid); else update(rc,mid+1,r); mx[i]=max(mx[lc],mx[rc]); } int query(int i,int l,int r) { // cout<<i<<" "<<l<<" "<<r<<endl; if(l>=ql&&r<=qr)return mx[i]; int mid=(l+r)>>1,lc=i<<1,rc=lc|1; if(qr<=mid)return query(lc,l,mid); else if(ql>mid)return query(rc,mid+1,r); else return max(query(lc,l,mid),query(rc,mid+1,r)); } int cnt; inline void insert(int u,int v) { e[++cnt].to=v,e[cnt].next=head[u],head[u]=cnt; } int main() { scanf("%d%d",&n,&k); for(int i=1;i<=n;++i)scanf("%d",p+i),q[p[i]]=i; for(int i=1;i<=n;++i){ ql=max(q[i]-k+1,1),qr=q[i]; // cout<<ql<<" "<<qr<<endl; int x=query(1,1,n); if(x)insert(q[i],q[x]),++in[q[x]]; ql=q[i],qr=min(q[i]+k-1,n); // cout<<ql<<" "<<qr<<endl; x=query(1,1,n); if(x)insert(q[i],q[x]),++in[q[x]]; qpos=q[i],qval=i; // cout<<qpos<<" "<<qval<<endl; update(1,1,n); } for(int i=1;i<=n;++i) if(!in[i])pq.push(i); for(int i=n;i;--i){ ord[i]=pq.top(); pq.pop(); for(int j=head[ord[i]];j;j=e[j].next){ int v=e[j].to; if(!--in[v]){ pq.push(v); } } } for(int i=1;i<=n;++i)val[ord[i]]=i; for(int i=1;i<=n;++i)printf("%d\n",val[i]); return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Wide Swap |
User | DFPMTS |
Language | C++ (GCC 5.4.1) |
Score | 2000 |
Code Size | 1677 Byte |
Status | AC |
Exec Time | 448 ms |
Memory | 30848 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:41:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d",&n,&k); ^ ./Main.cpp:42:48: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] for(int i=1;i<=n;++i)scanf("%d",p+i),q[p[i]]=i; ^
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 | 3 ms | 8448 KB |
001.txt | AC | 3 ms | 8448 KB |
002.txt | AC | 4 ms | 14592 KB |
003.txt | AC | 4 ms | 14592 KB |
004.txt | AC | 4 ms | 14592 KB |
005.txt | AC | 4 ms | 14592 KB |
006.txt | AC | 4 ms | 14592 KB |
007.txt | AC | 4 ms | 14592 KB |
008.txt | AC | 4 ms | 14592 KB |
009.txt | AC | 5 ms | 14592 KB |
010.txt | AC | 5 ms | 14592 KB |
011.txt | AC | 5 ms | 14592 KB |
012.txt | AC | 5 ms | 14592 KB |
013.txt | AC | 5 ms | 14592 KB |
014.txt | AC | 5 ms | 14592 KB |
015.txt | AC | 5 ms | 14592 KB |
016.txt | AC | 5 ms | 14592 KB |
017.txt | AC | 5 ms | 14592 KB |
018.txt | AC | 5 ms | 14592 KB |
019.txt | AC | 5 ms | 14592 KB |
020.txt | AC | 4 ms | 14592 KB |
021.txt | AC | 4 ms | 14592 KB |
022.txt | AC | 4 ms | 14592 KB |
023.txt | AC | 5 ms | 14592 KB |
024.txt | AC | 4 ms | 14592 KB |
025.txt | AC | 5 ms | 14592 KB |
026.txt | AC | 5 ms | 14592 KB |
027.txt | AC | 4 ms | 14592 KB |
028.txt | AC | 4 ms | 14592 KB |
029.txt | AC | 3 ms | 8448 KB |
030.txt | AC | 5 ms | 14720 KB |
031.txt | AC | 5 ms | 14592 KB |
032.txt | AC | 5 ms | 14592 KB |
033.txt | AC | 4 ms | 14592 KB |
034.txt | AC | 5 ms | 14592 KB |
035.txt | AC | 5 ms | 14592 KB |
036.txt | AC | 5 ms | 14592 KB |
037.txt | AC | 5 ms | 14592 KB |
038.txt | AC | 5 ms | 14592 KB |
039.txt | AC | 322 ms | 28916 KB |
040.txt | AC | 390 ms | 30848 KB |
041.txt | AC | 444 ms | 30848 KB |
042.txt | AC | 438 ms | 30848 KB |
043.txt | AC | 444 ms | 30848 KB |
044.txt | AC | 387 ms | 30848 KB |
045.txt | AC | 334 ms | 30464 KB |
046.txt | AC | 448 ms | 30848 KB |
047.txt | AC | 435 ms | 30848 KB |
048.txt | AC | 350 ms | 30720 KB |
049.txt | AC | 144 ms | 24192 KB |
050.txt | AC | 235 ms | 26624 KB |
051.txt | AC | 193 ms | 24320 KB |
052.txt | AC | 402 ms | 29824 KB |
053.txt | AC | 57 ms | 10488 KB |
054.txt | AC | 289 ms | 29056 KB |
055.txt | AC | 5 ms | 14592 KB |
056.txt | AC | 42 ms | 15488 KB |
057.txt | AC | 184 ms | 24320 KB |
058.txt | AC | 51 ms | 18048 KB |
059.txt | AC | 310 ms | 24048 KB |
060.txt | AC | 343 ms | 30848 KB |
061.txt | AC | 322 ms | 28916 KB |
062.txt | AC | 342 ms | 30848 KB |
063.txt | AC | 323 ms | 30712 KB |
064.txt | AC | 343 ms | 30848 KB |
065.txt | AC | 333 ms | 30584 KB |
066.txt | AC | 343 ms | 30848 KB |
067.txt | AC | 334 ms | 30460 KB |
068.txt | AC | 343 ms | 30848 KB |
069.txt | AC | 302 ms | 30208 KB |
070.txt | AC | 340 ms | 30208 KB |
071.txt | AC | 293 ms | 30464 KB |
072.txt | AC | 253 ms | 30584 KB |
073.txt | AC | 336 ms | 30208 KB |
074.txt | AC | 260 ms | 28916 KB |
075.txt | AC | 352 ms | 30720 KB |
076.txt | AC | 354 ms | 30592 KB |
077.txt | AC | 342 ms | 30208 KB |
078.txt | AC | 335 ms | 30208 KB |
079.txt | AC | 90 ms | 21632 KB |
080.txt | AC | 15 ms | 14976 KB |
081.txt | AC | 28 ms | 15360 KB |
082.txt | AC | 172 ms | 24320 KB |
083.txt | AC | 52 ms | 18176 KB |
084.txt | AC | 48 ms | 18176 KB |
085.txt | AC | 42 ms | 18048 KB |
086.txt | AC | 13 ms | 14976 KB |
087.txt | AC | 82 ms | 21504 KB |
088.txt | AC | 45 ms | 18176 KB |
089.txt | AC | 245 ms | 24048 KB |
090.txt | AC | 275 ms | 28160 KB |
sample-01.txt | AC | 4 ms | 14592 KB |
sample-02.txt | AC | 2 ms | 8448 KB |
sample-03.txt | AC | 4 ms | 14592 KB |