根据题意列出甲对乙的所有结果即可
查看原帖
根据题意列出甲对乙的所有结果即可
1760780
xurxqvq楼主2025/7/30 22:43
#include <iostream>
#include <unordered_map>
#include <queue>
#include <vector>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
#define int long long
#define x first
#define y second
#define pb push_back
#define endl "\n"
#define rep(i, j, k) for (int i = (int)j; i <= (int)k; i ++ )
#define per(i, j, k) for (int i = (int)j; i >= (int)k; i -- )
#define fixed(x) cout << fixed << setprecision(x);
typedef pair<int, int> PII;
typedef long long LL;
const int N = 200010, M = 1000010, INF = 2147483647;
const double eps = 1e-6;

void solve(){
	int n, n_a, n_b;
	cin >> n >> n_a >> n_b;
	
	vector<int> A(n_a), B(n_b);
	for(int i = 0; i < n_a; i ++) cin >> A[i];
	for(int i = 0; i < n_b; i ++) cin >> B[i];
	
	int rules[5][5] = {
	    {0,-1,1,1,-1}, // 剪刀
	    {1,0,-1,1,-1}, // 石头
	    {-1,1,0,-1,1}, // 布
	    {-1,-1,1,0,1}, // 蜥蜴人
	    {1,1,-1,-1,0} // 斯波克
	};
	
	int score_a = 0, score_b = 0;
	for(int i = 0; i < n; i ++) {
		int a = A[i % n_a];
		int b = B[i % n_b];
		int result = rules[a][b];
		if(result == 1) score_a ++;
		else if(result == -1) score_b ++;
	}
	cout << score_a << " " << score_b << endl;
}


signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int _(1);
    // cin >> _;
    while (_ -- )
    {
        solve();
    }

    return 0;
}
2025/7/30 22:43
加载中...