A. Gennady and a Card Game
a题惯例签到题
题意:给你一张牌,再给你5张牌,判断能不能出一次牌...
所以只要检查第二行中的某个卡是否与第一行中的卡具有共同字符
有就输出YES否则输出NO
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char a,b,s[101];
bool tf=0;
int main(){
scanf("%c%c",&a,&b);
for(int i=0;i<5;i++){
scanf("%s",s);
if(s[0]==a||s[1]==b) tf=1;
}
if(tf) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
return 0;
}
B. Petr and a Combination Lock
题意:检查角度是否为360度的倍数。
这题让我第一次见识到了被hack...
#include<iostream>
#include<cstdio>
using namespace std;
int a[101],n,x;
bool tf=0;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%d",&a[i]);
for(int i=0;i<1<<n;++i){
x=0;
for(int j=1;j<=n;++j)
if((1<<(j-1))&i) x+=a[j];
else x-=a[j];
if((x==0)||(x%360==0)) tf=1;
}
if (tf) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
return 0;
}