CF437A子供と宿題题解

この質問は非常に単純なシミュレーションの質問です。4つのオプションを読み、長さを取り出してから、激しいサイクルで判断します。

ピットに注意してください。ピットA. B. C. D.は文字列にカウントされないため、除外する必要があります。

コード:

#include <bits/stdc++.h>
using namespace std;

typedef long long LL;
const int MAXN = 100;
string str[5];
int a[5], ans, pd;

int read()
{
    
    
	int sum = 0, fh = 1; char ch = getchar();
	while (ch < '0' || ch > '9') {
    
    if (ch == '-') fh = -1; ch = getchar();}
	while (ch >= '0' && ch <= '9') {
    
    sum = (sum << 3) + (sum << 1) + (ch ^ 48); ch = getchar();}
	return sum * fh;
}

int main()
{
    
    
	for (int i = 1; i <= 4; ++i)
	{
    
    
		char ch = getchar();
		while (ch != '.') ch = getchar();
		cin >> str[i]; a[i] = str[i].size();
	}
	for (int i = 1; i <= 4; ++i)
	{
    
    
		bool flag1 = 1, flag2 = 1, flag3 = 0;
		for (int j = 1; j <= 4; ++j)
		{
    
    
			if (i == j) continue;
			if (a[i] >= a[j] * 2) flag2 = 0;
			else if (a[i] * 2 <= a[j]) flag1 = 0;
			else flag3 = 1;
		}
		if ((flag1 || flag2) && !flag3) ans++, pd = i;
	}
	if (ans == 1) cout << (char)(pd + 'A' - 1);
	else cout << "C";
	return 0;
}

おすすめ

転載: blog.csdn.net/BWzhuzehao/article/details/113708136