码迷,mamicode.com
首页 > 移动开发 > 详细

PAT 乙级 1018.剪子锤子布 C++/Java

时间:2020-05-01 00:51:36      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:ref   信息   题目   tor   code   乙级   using   stream   java实现   

题目来源
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

输入格式:

输入第 1 行给出正整数 N(≤10
5
),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。

输出格式:
输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格分隔。第 3 行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有 1 个空格。如果解不唯一,则输出按字母序最小的解。

输入样例:

10
C J
J B
C B
B B
B C
C C
C B
J B
B C
J J

?

输出样例:

5 3 2
2 3 5
B B

C++实现:

#include <iostream>
#include <vector>
#include <string>
#include <cstdio>
#include <string>
#include <algorithm>
#include <stack>
#include <map>
#include <queue>
#include <unordered_set>
#include <unordered_map>
using namespace std;

int change(char c) {
	if (c == ‘B‘) {
		return 0;
	}
	else if (c == ‘C‘) {
		return 1;
	}
	else if (c == ‘J‘) {
		return 2;
	}
}


int main() {
	string mp = "BCJ";	// 布 锤 剪
	int N;
	cin >> N;

	int timesJia[3] = { 0 };	// 甲的胜平负
	int timesYi[3] = { 0 };		// 乙的胜平负

	int handJia[3] = { 0 };	// 甲3种手势获胜的次数分别为 B C J对应 0 1 2
	int handYi[3] = { 0 };

	char cJia, cYi;

	int p1, p2;

	for (int i = 0; i < N; ++i) {
		cin >> cJia >> cYi;
		p1 = change(cJia);
		p2 = change(cYi);
		// B > C > J > B
		// 0   1   2   1

		if (p1 == p2) {
			// 平手
			timesJia[1]++;
			timesYi[1]++;
		}
		else if ((p1 + 1) % 3 == p2) {
			// 甲赢
			timesJia[0]++;
			timesYi[2]++;
			handJia[p1]++;	// 甲用p1手势赢的次数加1
		}
		else {
			// 乙赢
			timesJia[2]++;
			timesYi[0]++;
			handYi[p2]++;
		}
	}

	cout << timesJia[0] << ‘ ‘ << timesJia[1] << ‘ ‘ << timesJia[2] << endl;
	cout << timesYi[0] << ‘ ‘ << timesYi[1] << ‘ ‘ << timesYi[2] << endl;

	int maxJia = 0, maxYi = 0;
	for (int i = 0; i < 3; ++i) {
		if (handJia[i] > handJia[maxJia]) {
			maxJia = i;
		}
		if (handYi[i] > handYi[maxYi]) {
			maxYi = i;
		}
	}
	cout << mp[maxJia] << ‘ ‘ << mp[maxYi];
	return 0;
}

Java实现:

// TODO

PAT 乙级 1018.剪子锤子布 C++/Java

标签:ref   信息   题目   tor   code   乙级   using   stream   java实现   

原文地址:https://www.cnblogs.com/47Pineapple/p/12812206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!