⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1181.c

📁 平时acm训练时ac的源代码
💻 C
字号:
#include <stdio.h>

char Ch[1001];
int Sh[1001]={0},n,V,Count=0,dig[3][1001]={0};

Readata()
{
	int i;
	scanf("%d",&n);
	for(i=0;i<=n;i++)
		scanf("%c",&Ch[i]);
}

Findnext()
{
	int Sat,i,S1,S2,S3,Te1,Te2,V1=1,V2=1,V3=1;
	S1=0;S2=0;S3=0;
	for(i=1;i<=V;i++)
	{
		if(Ch[i]=='G') S1++;
		if(Ch[i]=='B') S2++;
		if(Ch[i]=='R') S3++;
	}
	for(i=1;i<=V;i++)
	{
		Sat=1;
		Te1=(i+1)%V;
		Te2=(i+2)%V;
		if(Te1==0) Te1=V;
		if(Te2==0) Te2=V;
		if((Ch[i]!=Ch[Te1])&&(Ch[i]!=Ch[Te2])&&(Ch[Te1]!=Ch[Te2]))
		{
			if((Ch[Te1]=='G')&&(S1=1)) Sat=0;
			if((Ch[Te1]=='B')&&(S2=1)) Sat=0;
			if((Ch[Te1]=='R')&&(S3=1)) Sat=0;
			if(Sat)
			{
				V1=i;
				V2=Te1;
				V3=Te2;
			}
		}
	}
	Count++;
	dig[1][Count]=Sh[V1];
	dig[2][Count]=Sh[V3];
	for(i=V2+1;i<=V;i++)
	{
		Sh[i-1]=Sh[i];
		Ch[i-1]=Ch[i];
	}
	V--;
}

Writedata()
{
	int i;
	printf("%d\n",n-3);
	for(i=1;i<=Count;i++)
		printf("%d %d\n",dig[1][i],dig[2][i]);
}

main()
{
	int i;
	Readata();
	for(i=1;i<=n;i++)
		Sh[i]=i;
	V=n;
	for(i=1;i<=n-3;i++)
		Findnext();
	Writedata();
	getch();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -