📄 1181.pas
字号:
Var
Ch :Array[1..1000] OF Char;
Sh :Array[1..1000] OF integer;
n :integer;
V,Count :integer;
dig :Array[1..2,1..1000] OF integer;
Procedure Readata;
Var
i :integer;
Begin
Readln(n);
For i:=1 To n do
Read(Ch[i]);
End;
Procedure Findnext;
Var
Sat :Boolean;
i,S1,S2,S3,
Te1,Te2,V1,V2,V3 :integer;
Begin
S1:=0;S2:=0;S3:=0;
For i:=1 To v do
Begin
IF Ch[i]='G' Then inc(S1);
IF Ch[i]='B' Then inc(S2);
IF Ch[i]='R' Then inc(S3);
End;
For i:=1 To v do
Begin
Sat:=True;
Te1:=(i+1) mod v;
Te2:=(i+2) mod v;
IF Te1=0 Then Te1:=v;
IF Te2=0 Then Te2:=v;
IF (Ch[i]<>Ch[Te1]) and (Ch[i]<>Ch[Te2]) and (Ch[Te1]
<>Ch[Te2]) Then
Begin
IF (Ch[Te1]='G') and (S1=1) Then Sat:=False;
IF (Ch[Te1]='B') and (S2=1) Then Sat:=False;
IF (Ch[Te1]='R') and (S3=1) Then Sat:=False;
IF Sat Then
Begin
V1:=i;
V2:=Te1;
V3:=Te2;
End;
End;
End;
inc(Count);
dig[1,Count]:=Sh[V1];
dig[2,Count]:=Sh[V3];
For i:=V2+1 To V do
Begin
Sh[i-1]:=Sh[i];
Ch[i-1]:=Ch[i];
End;
dec(V);
End;
Procedure Writedata;
Var
i :integer;
Begin
Writeln(n-3);
For i:=1 To Count do
Writeln(dig[1,i],' ',dig[2,i]);
End;
Var
i :integer;
Begin
Readata;
For i:=1 To n do
Sh[i]:=i;
V:=n;
For i:=1 To n-3 do
Findnext;
Writedata;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -