結果

問題 No.662 スロットマシーン
ユーザー ant2357
提出日時 2018-03-11 19:00:12
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 4 ms / 2,000 ms
コード長 1,077 bytes
コンパイル時間 2,493 ms
コンパイル使用メモリ 208,476 KB
最終ジャッジ日時 2025-01-05 09:14:54
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 19
権限があれば一括ダウンロードができます

ソースコード

diff #

#include "bits/stdc++.h"

using namespace std;

using ll = long long;
using ld = long double;

const int INF = (1 << 30) - 1;
const ll INF64 = ((ll)1 << 62) - 1;
const double PI = 3.1415926535897932384626433832795;

const int dx[] = { 0, 1, 0, -1 };
const int dy[] = { -1, 0, 1, 0 };

int main() {
	//ios::sync_with_stdio(false);
	//cin.tie(0);

	const int DESIGN_NUM = 5;
	const int REEL_NUM = 3;

	vector<string> str(DESIGN_NUM);
	vector<int> coin(DESIGN_NUM);

	for (int i = 0; i < DESIGN_NUM; i++) {
		cin >> str[i] >> coin[i];
	}

	vector<map<string, int>> mp(REEL_NUM);
	vector<int> n(REEL_NUM);
	for (int i = 0; i < REEL_NUM; i++) {
		cin >> n[i];
		for (int j = 0; j < n[i]; j++) {
			string s;
			cin >> s;

			mp[i][s]++;
		}
	}

	double ansA = 0;
	vector<ll> ansB(DESIGN_NUM);
	for (int i = 0; i < DESIGN_NUM; i++) {
		string s = str[i];
		ansB[i] = 5LL * mp[0][s] * mp[1][s] * mp[2][s];
		ansA += ansB[i] * coin[i];
	}

	for (int i = 0; i < REEL_NUM; i++) {
		ansA /= n[i];
	}

	printf("%.10lf\n", ansA);
	for (auto v : ansB) {
		cout << v << endl;
	}
	return 0;
}
0