Codeforces Round #205 (Div. 2) : D

思维题,感叹自己的智商不够啊。

思路大概是这样的:

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 }
View Code
原文地址:https://www.cnblogs.com/yours1103/p/3365848.html