【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=6045
题目意思
两个人在答题,答对得一分,现在A给你n,x,y。分别代表n道题,A和B的得分,最后给你两个字符串代表AB的每题答案是什么。问你给出的答案是否可能出现。输出A是不是说谎了
解题思路
如果两人不同答案小于两人的分数差或两人相同答案数小于两人分数和减题目数。都是说谎了其他都是没说谎
代码部分
#include <bits/stdc++.h>
using namespace std;
char a[
800005],b[
800005];
int main()
{
int t,m,n,l1,l2;
scanf(
"%d",&t);
while (t--)
{
int T;
l1=
0,l2=
0;
scanf(
"%d %d %d",&T,&n,&m);
scanf(
"%s %s",&a,&b);
for (
int i=
0;i<T;i++)
{
if (a[i]==b[i])
l1++;
else l2++;
}
if (l1>=n+m-T&&l2>=
abs(n-m))
printf(
"Not lying\n");
else printf(
"Lying\n");
}
}