シンプルなシミュレーション
#include <iostreamの> する#include <アルゴリズム> の#include <string.hの> する#include <セット> 名前空間STDを使用して、 const int型MAXN = 400010; [MAXN] int型。 ボイド解く() { int型のn; cinを>> N; 以下のために(INT I 1 =; I <= N; I ++)CIN >> [I]。 INT G = 0、S = 0、D = 0、X = 0。 以下のために(INT I 2 =; I <= N / 2; I ++) { IF([I] = [I-1]!){X = I-1;ブレーク;} } G = X。 INT K = G + 1]、BK = 0。 用(INT I = X + 2、I <= N / 2; I ++) { IF([I] = K && IG-1!> G){S = IG-1; X = I;ブレーク;} そう(![I] = K && I-G-1の場合<= G){k = [I];} } ; I(INTは、I = N / 2 + 1> = X。 IF(![I] = [I-1]){D = IX;ブレーク;} } 場合(G> = S || G> = D || G + S + D> N / 2)COUT < < "0 0 0" <<てendl; 他のcoutの<<グラム<< " "<< S <<"" << D <<てendl; } int型のmain() { int型、T。 cinを>>トン。 一方、(t--) { )(解きます。 } 0を返します。 }