プリ情報の最初の期間の後、その後、あなたは答えを更新することができ、一度背面に正面から前半を横断
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 #define N 200005 整数nは、[N]。 マップ < int型、int型 > 融点; INT のmain(){ int型 T; CIN >> T。 一方、(t-- ){ cinを >> N; mp.clear(); 以下のために(INT iが= 1 ; I <= 2 * N; I ++)CIN >> [I]。 INT今= 0 ; MP [ 0 ] = 2 * N + 1 。 以下のために(INT iが= 2 * N; I> = N + 1 ; i-- ){ 場合([I] == 1)今++ 。 他 now-- ; MP [今] = I; } int型 ANS = 0 ; もし(MP [ 0 ]!= 0 ) 年 = 2 * N-MP [ 0 ] + 1 。 今 = 0 ; 以下のために(INT iが= 1 ; I <= N; I ++ ){ 場合([I] == 1)今++ 。 他 now-- ; もし(MP [-now]!= 0 ) ANS = MAX(ANS、I + 2 * N-MP [-NOW] + 1 )。 } coutの << 2 * N-ANS << ' \ n個' ; } }