提出 #35803366
ソースコード 拡げる
#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,LIM=2e5,base=19260817,INF=1e9;
int n,a[MAXN];
int x,y,p[MAXN],q[MAXN];
int lcs;
ull pw[MAXN];
ull ha[MAXN],hp[MAXN],hq[MAXN];
int dis[MAXN];
queue<int>Q;
vector<int>e[MAXN];
ull qry(ull* h,int l,int r){
return h[r]-h[l-1]*pw[r-l+1];
}
set<ull>S;
int check(int mid){
S.clear();
rep(i,mid,x)S.insert( qry(hp,i-mid+1,i) );
rep(i,mid,y)if(S.find( qry(hq,i-mid+1,i) )!=S.end())return 1;
return 0;
}
int main(){
pw[0]=1;rep(i,1,LIM)pw[i]=pw[i-1]*base;
//
cin>>n;
rep(i,1,n)cin>>a[i];
cin>>x;rep(i,1,x)cin>>p[i];
cin>>y;rep(i,1,y)cin>>q[i];
//
rep(i,1,n)ha[i]=ha[i-1]*base+a[i];
rep(i,1,x)hp[i]=hp[i-1]*base+p[i];
rep(i,1,y)hq[i]=hq[i-1]*base+q[i];
//
int L=1,R=min(x,y);
while(L<=R){
int mid=(L+R)>>1;
if(check(mid)){
lcs=mid;
L=mid+1;
}else{
R=mid-1;
}
}
if(lcs)cout<<x+y-2*lcs;
else{
rep(i,1,n)dis[i]=INF;
rep(i,1,x)dis[p[i]]=0,Q.push(p[i]);
rep(i,1,n-1)e[a[i]].push_back(a[i+1]),e[a[i+1]].push_back(a[i]);
while(Q.size()){
int u=Q.front();Q.pop();
for(auto v:e[u])if(dis[v]>dis[u]+1){
dis[v]=dis[u]+1;
Q.push(v);
}
}
int d=INF;
rep(i,1,y)d=min(d,dis[q[i]]);
cout<<x+y+2*(d-1);
}
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - Keep Being Substring |
| ユーザ | Crying |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 700 |
| コード長 | 1859 Byte |
| 結果 | AC |
| 実行時間 | 819 ms |
| メモリ | 22128 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 700 / 700 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | example0.txt, example1.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, example0.txt, example1.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 000.txt | AC | 11 ms | 9792 KiB |
| 001.txt | AC | 179 ms | 21416 KiB |
| 002.txt | AC | 58 ms | 12364 KiB |
| 003.txt | AC | 679 ms | 22128 KiB |
| 004.txt | AC | 69 ms | 13132 KiB |
| 005.txt | AC | 54 ms | 14408 KiB |
| 006.txt | AC | 819 ms | 19168 KiB |
| 007.txt | AC | 805 ms | 19168 KiB |
| 008.txt | AC | 809 ms | 19120 KiB |
| 009.txt | AC | 811 ms | 19224 KiB |
| 010.txt | AC | 818 ms | 19172 KiB |
| 011.txt | AC | 475 ms | 18000 KiB |
| 012.txt | AC | 656 ms | 18588 KiB |
| 013.txt | AC | 768 ms | 19096 KiB |
| 014.txt | AC | 778 ms | 19100 KiB |
| 015.txt | AC | 745 ms | 19148 KiB |
| 016.txt | AC | 735 ms | 19216 KiB |
| 017.txt | AC | 716 ms | 19060 KiB |
| 018.txt | AC | 741 ms | 19088 KiB |
| 019.txt | AC | 82 ms | 19172 KiB |
| 020.txt | AC | 83 ms | 19028 KiB |
| 021.txt | AC | 85 ms | 19220 KiB |
| 022.txt | AC | 82 ms | 19104 KiB |
| 023.txt | AC | 80 ms | 19228 KiB |
| 024.txt | AC | 89 ms | 19228 KiB |
| 025.txt | AC | 86 ms | 19104 KiB |
| 026.txt | AC | 45 ms | 15352 KiB |
| 027.txt | AC | 45 ms | 15436 KiB |
| 028.txt | AC | 46 ms | 15348 KiB |
| 029.txt | AC | 54 ms | 16800 KiB |
| 030.txt | AC | 57 ms | 16872 KiB |
| 031.txt | AC | 58 ms | 16684 KiB |
| 032.txt | AC | 38 ms | 14412 KiB |
| 033.txt | AC | 10 ms | 9784 KiB |
| 034.txt | AC | 139 ms | 13144 KiB |
| 035.txt | AC | 16 ms | 10044 KiB |
| 036.txt | AC | 133 ms | 14156 KiB |
| 037.txt | AC | 187 ms | 14180 KiB |
| 038.txt | AC | 393 ms | 15408 KiB |
| 039.txt | AC | 103 ms | 12816 KiB |
| 040.txt | AC | 218 ms | 14380 KiB |
| 041.txt | AC | 158 ms | 13784 KiB |
| 042.txt | AC | 180 ms | 14200 KiB |
| 043.txt | AC | 82 ms | 17260 KiB |
| 044.txt | AC | 69 ms | 16240 KiB |
| 045.txt | AC | 62 ms | 15896 KiB |
| 046.txt | AC | 56 ms | 15860 KiB |
| 047.txt | AC | 53 ms | 15516 KiB |
| 048.txt | AC | 52 ms | 15864 KiB |
| 049.txt | AC | 50 ms | 15356 KiB |
| 050.txt | AC | 50 ms | 15564 KiB |
| 051.txt | AC | 52 ms | 15652 KiB |
| 052.txt | AC | 49 ms | 15140 KiB |
| 053.txt | AC | 48 ms | 15264 KiB |
| 054.txt | AC | 48 ms | 15752 KiB |
| 055.txt | AC | 46 ms | 15624 KiB |
| 056.txt | AC | 46 ms | 15124 KiB |
| 057.txt | AC | 48 ms | 15068 KiB |
| 058.txt | AC | 128 ms | 17880 KiB |
| 059.txt | AC | 86 ms | 13952 KiB |
| example0.txt | AC | 12 ms | 9864 KiB |
| example1.txt | AC | 12 ms | 9788 KiB |