思维题,感叹自己的智商不够啊。
思路大概是这样的:
1.排在队伍前面的女生是不用换位置的;
2.女生在队伍中的顺序是不会变的;
3.最后一个女生稳定了则程序结束;
4.每个女生都有个初始位置和最终位置。如果一个女生的初始位置减去最终位置>现在的最大值,则最大值更新;
否则最大值+1;
代码:
1 #include<cstdio> 2 using namespace std; 3 char s; 4 int main() 5 { 6 int r=0,f=1,l=0; 7 while(getchar()=='F'); 8 while((s=getchar())=='F'||s=='M') 9 { 10 if(s=='F') 11 { 12 if(f-l>r)r=f-l; 13 else r++; 14 l++; 15 } 16 f++; 17 } 18 printf("%d ",r); 19 return 0; 20 }