属于OI或者ACM中的模拟题型,顺便练一下STL中的queue容器
#include <iostream> #include <algorithm> #include <queue> using namespace std; int main() { ios::sync_with_stdio(false); int n, na, nb; queue<int> qa, qb; cin >> n >> na >> nb; //3比2强比其他弱 4比0、1强比其他弱 //0 表示“剪刀”,1 表示“石头”,2 表示“布”,3 表示“蜥蜴人”,4 表示“斯波克” int* a = new int[na]; int* b = new int[nb]; for (int i = 0; i < na; i++) { cin >> a[i]; qa.push(a[i]); } for (int i = 0; i < nb; i++) { cin >> b[i]; qb.push(b[i]); } //0 表示平 1 表示赢 -1 表示输 int score[5][5] = { {1,3,2,2,3},{2,1,3,2,3},{3,2,1,3,2},{3,3,2,1,2},{2,2,3,3,1} }; int aa = 0, bb = 0; int sa = 0, sb = 0; for (int i = 0; i < n; i++) { aa = qa.front(); qa.pop(); qa.push(aa); bb = qb.front(); qb.pop(); qb.push(bb); if (score[aa][bb] == 2) { sa++; } else if (score[aa][bb] == 3) { sb++; } aa++; bb++; } cout << sa << " " << sb << endl; //system("pause"); return 0; }