AT_joi2021_yo1b_b 题解

蒟中之蒻 / 2023-06-21 / 原文

小蒟蒻的第二篇题解,有问题请指出。

思路

用三重循环依次找出 IOI

第一个循环找第一个 I,若找出,继续第二个循环找 O,若找出,最后第三个循环找 I,若全部找出,直接输出 Yes 返回 0 结束。遍历整个字符串也没有 IOI 的话,便输出 No。要注意的是,并不是连续的 IOI,只要有出现 IOI 并且顺序一样,就是正确的。

代码

#include<iostream>
#include<string>
using namespace std;
int main()
{
	int n;
	string a;
	cin >> n >> a;
	for (int i = 0; i < n; i++) {
		if (a[i] == 'I') {
			for (int j = i + 1; j < n; j++) {
				if (a[j] == 'O') {
					for (int k = j + 1; k < n; k++) {
						if (a[k] == 'I') {
							cout << "Yes\n";
							return 0;
						}
					}
				}
			}
		}
	}
	cout << "No\n";
	return 0;
}

我不会告诉你我大小写输错导致四次提交错误