石头剪刀布升级版[NOIP2014]

输出格式

输出一行,包含两个整数,以一个空格分隔,分别表示小 A、小 B 的得分。

样例 #1

样例输入 #1

复制代码
10 5 6
0 1 2 3 4
0 3 4 2 1 0

样例输出 #1

复制代码
6 2

样例 #2

样例输入 #2

复制代码
9 5 5
0 1 2 3 4
1 0 3 2 4

样例输出 #2

复制代码
4 4

提示

对于 100% 的数据,0<N≤200,0<NA≤200,0<NB≤200 。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

int n, a, b;
int gavv[1000], valen[1000];

int main() {
	//freopen("rps.in","r",stdin);
	//freopen("rps.out","w",stdout);
	cin >> n >> a >> b;
	for (int i = 1; i <= a; i++) cin >> gavv[i];
	for (int i = 1; i <= b; i++) cin >> valen[i];
	int a1 = 1, b1 = 1, ans1 = 0, ans2 = 0;
	while (n--) {
		if (a1 > a) a1 = 1;
		if (b1 > b) b1 = 1;
		if (gavv[a1] == 0) {
			if (valen[b1] == 1||valen[b1]==4) {
				ans2++;
			} else {
				if (valen[b1] != 0) ans1++;
			}
		}
		if (gavv[a1] == 1) {
			if (valen[b1] == 2 || valen[b1] == 4) {
				ans2++;
			} else {
				if (valen[b1] != 1) ans1++;
			}
		}
		if (gavv[a1] == 2) {
			if (valen[b1] == 0 || valen[b1] == 3) {
				ans2++;
			} else {
				if (valen[b1] != 2) ans1++;
			}
		}
		if (gavv[a1] == 3) {
			if (valen[b1] == 1 || valen[b1] == 0) {
				ans2++;
			} else {
				if (valen[b1] != 3) ans1++;
			}
		}
		if (gavv[a1] == 4) {
			if (valen[b1] == 2 || valen[b1] == 3) {
				ans2++;
			} else {
				if (valen[b1] != 4) ans1++;
			}
		}
		a1++;
		b1++;

	}
    cout<<ans1<<' '<<ans2;

	return 0;
}
相关推荐
沐怡旸13 小时前
【底层机制】std::unique_ptr 解决的痛点?是什么?如何实现?怎么正确使用?
c++·面试
感哥14 小时前
C++ 内存管理
c++
聚客AI14 小时前
🙋‍♀️Transformer训练与推理全流程:从输入处理到输出生成
人工智能·算法·llm
大怪v17 小时前
前端:人工智能?我也会啊!来个花活,😎😎😎“自动驾驶”整起!
前端·javascript·算法
惯导马工18 小时前
【论文导读】ORB-SLAM3:An Accurate Open-Source Library for Visual, Visual-Inertial and
深度学习·算法
骑自行车的码农20 小时前
【React用到的一些算法】游标和栈
算法·react.js
博笙困了20 小时前
AcWing学习——双指针算法
c++·算法
感哥20 小时前
C++ 指针和引用
c++
moonlifesudo21 小时前
322:零钱兑换(三种方法)
算法
感哥1 天前
C++ 多态
c++