CF469A I Wanna Be the Guy
CF469A题解
本人第一篇提交的题解,超级激动。
萌新一个,代码写的非常水。
题目理解
有一个若干关的游戏,两个人分别可以通过所有关卡中的一部分关,给出两个人各自都能通过的关卡数以及所有关卡编号 ,当两人合作时是否能够通过所有关?
输入输出解析
输入
4
3 1 2 3
2 2 4
可以看到,第一个人可以通过
“I become the guy.”
如果两人合作并不能通过所有的关卡,输出:
“Oh, my keyboard!”
解题思路
本题数据范围并不大,只有 (然而现实中我做了快10遍才过的。
先开一个大数组 ,存储每个关的通过信息(初始为
再依次输入通关信息,并在数组中找到对应的下标并修改为
最后,从下标为
然后一个简单的判断输出就好啦!
附上本人超级水的代码 & AC记录
#include<iostream>
#include<cmath>
#include<vector>
#include<map>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
//定义n,并输入n
int n;
cin>>n;
//开一个大数组
int ans[200];
//初始化均为0
for(int i=0;i<200;i++) ans[i]=0;
//x存储的是小x通过的关卡数,y存储的是小y的通过关卡数
int x;
int y;
int tmp;
cin>>x;
//依次存储x的通关信息
for(int i=0;i<x;i++){
cin>>tmp;
ans[tmp]=1;
}
cin>>y;
//依次存储y的通关信息
for(int i=0;i<y;i++){
cin>>tmp;
ans[tmp]=1;
}
//循环检查
int check=0;
for(int i=1;i<n+1;i++){
if(ans[i]==0){
check=0;
cout<<"Oh, my keyboard!"<<endl;
break;
}else if(ans[i]==1){
check =1;
}
}
if(check){
cout<<"I become the guy."<<endl;
}
}
本人的AC记录。
代码有很多有待优化的地方。
谢谢各位!
—— 清小秋