/*
第十届蓝桥杯大赛青少年创意编程C++组省赛 第1题 水下探测器(刘昕源)
水下探测器可以潜入湖中在任意水深进行科学探索。
湖水的最大深度为 h 米,即它在湖底时到水面的距离,0<=h<=100;
探测器最初的水下深度为 s 米,0<=s<=100;
当探测器不在水面(当前深度大于 0)时,每个 u 指令可使它上浮 1 米,
而当探测器在水面时,u 指令是无效的;
当探测器不在湖底(当前深度小于 h)时,每个 d 指令可使它下沉 1 米,
而当探测器在湖底时,d 指令是无效的;
在执行到无效指令时,探测器不做任何操作而继续执行下一指令。
编程实现:
根据给定的 h、s 和一个指令序列(由字符 u、d 组成的字符串,长度不超过 100),
求出执行完整的指令序列后,探测器的水下深度。
输入:
第一行:h 和 s,以空格分开。0<=s<=h<=100
第二行:长度不超过 100 的指令字符串,串中仅包含字母 u 或 d
输出:
代表探测器在执行指令后的水下深度的数字。
样例输入:
9 1
uduudd
样例输出:
2
*/
#include <cstdio>
#include <string>
#include <bits/stdc++.h>
using namespace std;
int main(){
string str;
int h, s;
scanf("%d%d",&h,&s);
cin>>str;
for(int i = 0; i <= str.length() - 1; ++i){
if(str[i] == 'u'){
if(s > 0){
--s;
}
else
{
if( s==0)
{
continue;
}
//s=0;
}
}
if(str[i] == 'd')
{
if(s < h ){
++s;
}
else
{
if( s==h)
{
continue;
}
}
}
}
printf("%d",s);
return 0;
}
scratch代码参考链接
https://blog.csdn.net/gnn8291/article/details/90632100