国庆节之前做的,放假回校后才提交的
忘了是自己写的还是抄的啦 放假10天 忘光了 呵呵
这是第一章第一节最难得字符处理题目了
/*
ID: 90girlf1
PROG: beads
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ofstream fout ("beads.out");
ifstream fin ("beads.in");
string necklace;
int n,j=0,max=0;
char f, l;
fin>>n;
fin>>necklace;
int memory[700][2];
for(int i=0; i<n; i++)
if(necklace[i]=='r')
memory[j][0]=1,memory[j][1]=i,j++;
else if(necklace[i]=='b')
memory[j][0]=-1,memory[j][1]=i,j++;
int r=0;
for(int i=0; i<j-1; i++)
if(memory[i][0]!=memory[i+1][0])
r++;
if(r<3)
{fout<<n<<endl;
return 0;}
for(int i=j; i<2*j; i++)
memory[i][0]=memory[i-j][0], memory[i][1]=memory[i-j][1]+n;
for(int i=0; i<j; i++)
{
for(;memory[i][0]==memory[i+1][0];i++);
int ii,q;
for( ii=i,q=0;q<3;ii++)
{
if(memory[ii][0]!=memory[ii+1][0])
q++;
}
if(max<(memory[ii][1]-memory[i][1]-1))
{
max=memory[ii][1]-memory[i][1]-1;
}
}
fout<<max<<endl;
return 0;
}