提出 #45903621
ソースコード 拡げる
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define per(i,a,b) for(int i=(a);i>=(b);i--)
#define op(x) ((x&1)?x+1:x-1)
#define odd(x) (x&1)
#define even(x) (!odd(x))
#define lc(x) (x<<1)
#define rc(x) (lc(x)|1)
#define lowbit(x) (x&-x)
#define mp(x,y) make_pair(x,y)
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
using namespace std;
const int MAXN = 2e5+10,INF = 1e9;
int n,a[MAXN*2],L[MAXN],R[MAXN],arr[MAXN],p[MAXN],pre[MAXN];
int X[MAXN],Y[MAXN],rk[MAXN];
#define mid ((l+r)>>1)
struct Seg{ //单点删除,求所有Xi = premin X里Yi的最小值
int mn[MAXN<<2],t[MAXN<<2];
int calc(int x,int l,int r,int pre){
if(l==r)return (pre > mn[x]) ? (Y[l]) : (INF);
if(pre > mn[lc(x)])return min(calc(lc(x),l,mid,pre),t[x]);
else return calc(rc(x),mid+1,r,pre);
}
void pu(int x,int l,int r){
mn[x] = min(mn[lc(x)],mn[rc(x)]);
t[x] = calc(rc(x),mid+1,r,mn[lc(x)]);
}
void build(int x,int l,int r){
if(l==r){
mn[x] = X[l];
return;
}
build(lc(x),l,mid);build(rc(x),mid+1,r);
pu(x,l,r);
}
void mdf(int x,int l,int r,int pos){
if(l==r)return (void)(mn[x] = INF);
(pos<=mid)?(mdf(lc(x),l,mid,pos)) : (mdf(rc(x),mid+1,r,pos));
pu(x,l,r);
}
}seg;
#undef mid
int main(){
ios::sync_with_stdio(false);
cin>>n;
rep(i,1,2*n)cin>>a[i],arr[i] = i;
rep(i,1,2*n)R[a[i]] = i;
per(i,2*n,1)L[a[i]] = i;
sort(arr+1,arr+1+n,[&](int x,int y){return R[x] < R[y];});
rep(i,1,n)X[i] = L[arr[i]],Y[i] = arr[i],rk[Y[i]] = i;
seg.build(1,1,n);
rep(i,1,n){
int val = seg.calc(1,1,n,INF);
assert(val != INF);
p[i] = val;
seg.mdf(1,1,n,rk[val]);
}
rep(i,1,n)cout<<p[i]<<" "<<p[i]<<" ";
return 0;
}
提出情報
| 提出日時 |
|
| 問題 |
F - Make Adjacent |
| ユーザ |
Crying |
| 言語 |
C++ 20 (gcc 12.2) |
| 得点 |
800 |
| コード長 |
1769 Byte |
| 結果 |
AC |
| 実行時間 |
201 ms |
| メモリ |
13648 KiB |
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
800 / 800 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All |
00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_rand_01.txt, 01_rand_02.txt, 01_rand_03.txt, 01_rand_04.txt, 01_rand_05.txt, 01_rand_06.txt, 01_rand_07.txt, 01_rand_08.txt, 01_rand_09.txt, 01_rand_10.txt, 01_rand_11.txt, 01_rand_12.txt, 01_rand_13.txt, 01_rand_14.txt, 01_rand_15.txt, 02_extreme_01.txt, 02_extreme_02.txt, 02_extreme_03.txt, 02_extreme_04.txt, 02_extreme_05.txt, 02_extreme_06.txt, 02_extreme_07.txt, 02_extreme_08.txt, 02_extreme_09.txt, 02_extreme_10.txt, 02_extreme_11.txt, 02_extreme_12.txt, 02_extreme_13.txt, 02_extreme_14.txt, 02_extreme_15.txt, 02_extreme_16.txt, 02_extreme_17.txt, 02_extreme_18.txt, 02_extreme_19.txt, 02_extreme_20.txt, 02_extreme_21.txt, 02_extreme_22.txt, 02_extreme_23.txt, 03_handmade_01.txt, 03_handmade_02.txt, 03_handmade_03.txt, 03_handmade_04.txt, 03_handmade_05.txt, 03_handmade_06.txt, 03_handmade_07.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00_sample_01.txt |
AC |
1 ms |
3424 KiB |
| 00_sample_02.txt |
AC |
1 ms |
3456 KiB |
| 00_sample_03.txt |
AC |
1 ms |
3492 KiB |
| 01_rand_01.txt |
AC |
173 ms |
13528 KiB |
| 01_rand_02.txt |
AC |
171 ms |
13564 KiB |
| 01_rand_03.txt |
AC |
172 ms |
13576 KiB |
| 01_rand_04.txt |
AC |
172 ms |
13580 KiB |
| 01_rand_05.txt |
AC |
175 ms |
13572 KiB |
| 01_rand_06.txt |
AC |
170 ms |
13572 KiB |
| 01_rand_07.txt |
AC |
173 ms |
13632 KiB |
| 01_rand_08.txt |
AC |
174 ms |
13564 KiB |
| 01_rand_09.txt |
AC |
171 ms |
13540 KiB |
| 01_rand_10.txt |
AC |
170 ms |
13584 KiB |
| 01_rand_11.txt |
AC |
175 ms |
13544 KiB |
| 01_rand_12.txt |
AC |
169 ms |
13580 KiB |
| 01_rand_13.txt |
AC |
174 ms |
13508 KiB |
| 01_rand_14.txt |
AC |
175 ms |
13528 KiB |
| 01_rand_15.txt |
AC |
174 ms |
13524 KiB |
| 02_extreme_01.txt |
AC |
124 ms |
13444 KiB |
| 02_extreme_02.txt |
AC |
98 ms |
13580 KiB |
| 02_extreme_03.txt |
AC |
201 ms |
13572 KiB |
| 02_extreme_04.txt |
AC |
126 ms |
13540 KiB |
| 02_extreme_05.txt |
AC |
131 ms |
13648 KiB |
| 02_extreme_06.txt |
AC |
168 ms |
13584 KiB |
| 02_extreme_07.txt |
AC |
146 ms |
13520 KiB |
| 02_extreme_08.txt |
AC |
159 ms |
13572 KiB |
| 02_extreme_09.txt |
AC |
171 ms |
13608 KiB |
| 02_extreme_10.txt |
AC |
124 ms |
13592 KiB |
| 02_extreme_11.txt |
AC |
98 ms |
13556 KiB |
| 02_extreme_12.txt |
AC |
199 ms |
13444 KiB |
| 02_extreme_13.txt |
AC |
127 ms |
13524 KiB |
| 02_extreme_14.txt |
AC |
131 ms |
13568 KiB |
| 02_extreme_15.txt |
AC |
169 ms |
13584 KiB |
| 02_extreme_16.txt |
AC |
146 ms |
13524 KiB |
| 02_extreme_17.txt |
AC |
158 ms |
13572 KiB |
| 02_extreme_18.txt |
AC |
174 ms |
13504 KiB |
| 02_extreme_19.txt |
AC |
130 ms |
13584 KiB |
| 02_extreme_20.txt |
AC |
130 ms |
13528 KiB |
| 02_extreme_21.txt |
AC |
131 ms |
13504 KiB |
| 02_extreme_22.txt |
AC |
130 ms |
13580 KiB |
| 02_extreme_23.txt |
AC |
131 ms |
13524 KiB |
| 03_handmade_01.txt |
AC |
1 ms |
3500 KiB |
| 03_handmade_02.txt |
AC |
128 ms |
13528 KiB |
| 03_handmade_03.txt |
AC |
127 ms |
13580 KiB |
| 03_handmade_04.txt |
AC |
128 ms |
13444 KiB |
| 03_handmade_05.txt |
AC |
127 ms |
13504 KiB |
| 03_handmade_06.txt |
AC |
132 ms |
13508 KiB |
| 03_handmade_07.txt |
AC |
94 ms |
13580 KiB |