大佬求助,试图使用位运算解决这道题,80分
查看原帖
大佬求助,试图使用位运算解决这道题,80分
645451
封禁用户楼主2022/6/5 21:14

今天突发奇想想试试用位运算解决这道题,于是就写了这么一段代码:

#include <iostream>

using namespace std;

int main()
{
    long long a,b,c;
    cin >> a >> b >> c;
    cout << (((a<60) ^ (b<60) ^ (c<60)) ) << endl;
}

但是执行后第二个检查点WA了,经过思考后发现如果使用异或操作,需要将三个1(三科全部及格)和三个0(三科全部不及格)的排除掉,所以在思考了一会怎么修改无果,只好加上了效率极底的代码:

#include <iostream>

using namespace std;

int main()
{
    long long a,b,c;
    cin >> a >> b >> c;
    cout << (((a<60) ^ (b<60) ^ (c<60)) && !(a==0 && b==0 && c==0) && !(a==1 && b==1 && c==1)) << endl;
}

但是第二个检查点还是WA,求助大佬我究竟是哪里有问题,修改后怎么提高效率。

谢谢

2022/6/5 21:14
加载中...