2017 Multi-University Training Contest - Team 2 1001 Is Derek lying?

#include "stdio.h"
#include "string.h"
#include <iostream>
using namespace std;
const int MAX=1000000;
char s1[MAX],s2[MAX];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
    int n,a,b;
    scanf("%d%d%d%*c",&n,&a,&b);
    int cnt=0;
    scanf("%s",s1);
    scanf("%s",s2);
    for(int i=0;i<n;i++)
    {
        if(s1[i]==s2[i])cnt++;
    }
    int dif=n-cnt;
    int k,k1;
    k=a>b?a:b;//k是两个数中大的那个,k1是小的
    k1=a<b?a:b;
   // printf("%d %d %d %d\n",dif,n,k,k1);
    if((cnt+n-k)>=k1&&k1>=(k-dif)&&a<=n&&b<=n&&a>=0&&b>=0)printf("Not lying\n");
    else printf("Lying\n");
}
return 0;
}
//测试数据,过了基本上就对了
/*
8
3 1 3
AAA
ABC
5 5 0
ABCBC
ACBCB
5 5 1
ABCBC
ACBCB
5 5 2
ABCBC
ACCCC
5 5 3
ABCCC
ACBCB
5 4 2
ABCCB
ACBCB
5 3 3
ABBBC
ACBCB
*/
这是一道数学题,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值