求助 ABC 301 C Atcoder Cards
  • 板块灌水区
  • 楼主sundyLIUXY
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/5/15 10:39
  • 上次更新2023/10/23 15:41:42
查看原帖
求助 ABC 301 C Atcoder Cards
706737
sundyLIUXY楼主2023/5/15 10:39

差两个点,怎么调都不对了,求调……

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

int n, sc, tc, bs[30], bt[30];
string s, t;

bool check(char ch)
{
	switch(ch)
	{
		case 'a': case 't': case 'c': case 'o': case 'd': case 'e': case 'r':
			return 1;
		default: return 0;
	}
}

int main()
{
	cin >> s >> t, n = s.size(), s = ' '+s, t = ' '+t;
	if(s.size() != t.size()) {printf("No"); return 0;}
	for(int i = 1; i <= n; i++) 
		if(s[i] != '@') bs[s[i]-'a']++;
		else sc++;
	for(int i = 1; i <= n; i++) 
		if(t[i] != '@') bt[t[i]-'a']++;
		else tc++;
	for(int i = 0; i < 25; i++)
		if(bs[i] > bt[i]) 
			if(!check(char(i+'a'))) {printf("No"); return 0;}
			else 
			{
				tc -= bs[i];
				if(tc < 0) {printf("No"); return 0;}
			}
	for(int i = 0; i < 25; i++)
		if(bt[i] > bs[i]) 
			if(!check(char(i+'a'))) {printf("No"); return 0;}
			else 
			{
				sc -= bt[i];
				if(sc < 0) {printf("No"); return 0;}
			}
	printf("Yes");

	return 0;
}
2023/5/15 10:39
加载中...