質問のシミュレーションの意味によると、しかし、唯一の90は、バグを見ていない、すべての後、彼らが望むアルゴリズムが、それはまた、トラブルを探していません。
1の#include <ビット/ STDC ++ H> 2 使用して 名前空間STDを、 3 の#define INF 0x3f3f3f3f 4 の#define LL長い長い 5 の#define PUI対<unsigned int型、整数> 6 の#define MP make_pair 7 の#define X第 8 の#define yの第 9 10 CONST INT MAXN = 1000005 。 11 PUI A [MAXN]。 12ベクター<PUI> ANS。 13 INT N、Q [ 4 ] = { 24、16、8、0 }、L [] = { 0、8、16、24、32 }。 14 のint ベース [] = {(1 << 24)、(1 << 16)、(1 << 8)、1 }。 15のostream&演算子 <<(のostream&アウト、PUI&U){ 16 のために(INT iは= 0 ; I < 4 ; ++ {I) 17 アウト << UX / 基地 [I]%ベース [ 2 ]。 18 もし(I < 3)アウト << " " 。 19 } アウト << " / " << UY。 20 リターンアウト。 21 } 22 ブール issub(INT I、INT J){ 23 であれば([I] .Y == A [j]が.Y){ 24 であれば([I] .X == A [J] .X) { リターン1 ;} 25 他 { 戻り0 ;} 26 } そう であれば([I] .Y> [J] .Y)戻り 0 ; 27 他{ 28 であれば(([J] .X >>(32 -a [I] .Y))==([I] .X >>(32 -a [I] .Y)))リターン 1 ; 29 他の リターン 0 ; 30 } 31 } 32 ブールOK(PUIのA、PUI B){ 33 PUIのTMP; tmp.x =アックス; tmp.y = Ay- 1 。 34 であれば(Ayの==により&& tmp.y> = 0 &&((AX >>(32 -Ay)>> 1)==(Bxを>>(32 -Ay)>> 1 )) 35 &&(((AX >>(32 -Ay))・1)^((Bxを>>(32 -Ay))&1))== 1)リターン 1 。 36 リターン 0 。 37 } 38 int型のmain(){ 39 列STR。 40の IOS :: sync_with_stdio(偽); 41 CIN >> N。 42 のために(INT iが= 0 ; iが<N ++ {i)が 43 [I] .Y = [I] .X =0 ; 44 cinを>> STR。 45 INT POS = str.find(' / ')、CUR = 0、SZ = str.size()。 46 符号なしTMP = 0 。 47 のために(INT II = 0 ; II <SZ && STR [II] =!' / ' ; ++ II){ 48 であれば(STR [II] == ' ' ){ 49 [I]・X + =(TMP < <Q [CUR ++ ])。 50 TMP = 0 。 51 }他{ 52 TMP = TMP * 10 +(STR [II] - ' 0 ' )。 53 } 54 } 55 であれば(TMP){ 56 [I]・X + =(TMP << Q [CUR ++ ])。 57 } 58 であれば(POS =!文字列::のNPO){ 59 のために(INT III = POS + 1 ; III <SZ; ++ III)[I] .Y = [I]・Y * 10 +(STR [ III] - ' 0 ' )。 60 } 他{ 61 [I] .Y = L [CUR]。 62 } 63 } 64 ソート(+のN)。 65 のために(INT iが= 0 ; iが<N; ++ i)が{ 66 場合([i]が.Y == - 1)続けます。 67 のint、K = 1 。 68 一方、(I + K <= N && issub(I、I + K))[I + K] .Y = - 1、K ++ 。 69 、I = I + K- 1 。 70 } 71 72 のために(INT I = 0; I <N; ++ I){ 73 であれば([I] .Y == - 1){ 続ける;} 74 プイB = [I]。 75 一方(ans.size()&& OK(ans.back()、B)){ 76 Bxを= ans.back()X; = ans.back()によってY-。1 。 77 ans.pop_back()。 78 } 79 ans.push_back(B)。 80 } 81 用(PUI U:ANS)COUT << U << ENDL。 82 リターン 0 ; 83 }