【NYIST】暑假训练赛 (三)----Problem B

在一个特别的班级里,学生们只喜欢三门课程之一:语文、数学或英语。班主任希望通过巧妙的交流方式,使得全班同学都能统一喜欢上同一门课程。本篇探讨了解决这一问题的有效算法。

聪明的班主任

时间限制: 1000 ms  |  内存限制: 65535 KB
描述
某校有一个神奇的班级,班里的人只喜欢语文或者数学或者英语,他们的班主任为此很头疼,因为班主任希望所有人都喜欢同一个科目,经过一番调研后发现,他可以通过自己的花言巧语使两个不同爱好的学生的爱好变成另一个爱好(比如他对一个喜欢语文的和一个喜欢数学的使用花言巧语,那么这二个人都会喜欢英语)
那么问题来了,聪明的班主任能否通过若干次花言巧语来让所有人都喜欢同一个科目
输入
多组测试样例;每组测试样例有3个数字a,b,c;分别代表这个班喜欢语文,喜欢数学,喜欢英语的人数,(输入数据范围为int型)
输出
如果班主任能够通过若干次改变使得所有人都喜欢同一个科目,输出“YES”,否则输出“NO”(不带引号);
样例输入
1 1 1
样例输出
YES
提示
注意:班级人数范围为int型
来源
原创
上传者
516108736


分析:一开始把题目看的太简单了,一直WA。后来发现,可以先转化后一些,然后可以继续转化。但是,总的来说,拥有最多人数的科目可以进行一直转换,被其他两科进行瓜分。所以公式为任意两科人数满足(max(a,b)-min(a,b))%3==0就输出YES。


CODE:

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

bool judge(int a,int b){
    if((max(a,b)-min(a,b))%3==0)
        return true;
    return false;
}

int main()
{
    int a,b,c;
    while(cin>>a>>b>>c){
        if(a==b||a==c||b==c){
            cout<<"YES"<<endl;
            continue;
        }
        bool flag=false;
        if(judge(a,b)) flag=true;
        if(judge(a,c)) flag=true;
        if(judge(c,b)) flag=true;
        if(flag)
            cout<<"YES"<<endl;
        else
            cout<<"NO"<<endl;
    }
    return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值