結果
問題 | No.161 制限ジャンケン |
ユーザー |
![]() |
提出日時 | 2015-05-14 10:26:53 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 142 ms / 5,000 ms |
コード長 | 824 bytes |
コンパイル時間 | 3,587 ms |
コンパイル使用メモリ | 77,772 KB |
実行使用メモリ | 41,684 KB |
最終ジャッジ日時 | 2024-11-30 04:35:50 |
合計ジャッジ時間 | 7,086 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
import java.util.Scanner;public class No161 {static final int G = 0, C = 1, P = 2;static int[] m = new int[3], e = new int[3];public static void main(String[] args) {int point = 0;Scanner sc = new Scanner(System.in);m[G] = sc.nextInt();m[C] = sc.nextInt();m[P] = sc.nextInt();e[G] = e[C] = e[P] = 0;char[] s = new char[m[G] + m[C] + m[P]];s = sc.next().toCharArray();sc.close();for (int i = 0; i < s.length; i++) {if (s[i] == 'G')e[G]++;if (s[i] == 'C')e[C]++;if (s[i] == 'P')e[P]++;}point += (same(G, C) + same(C, P) + same(P, G)) * 3;point += same(G, G) + same(C, C) + same(P, P);System.out.println(point);}static int same(int me, int ene) {int buf = Math.max(m[me], e[ene]) - Math.abs(m[me] - e[ene]);m[me] -= buf;e[ene] -= buf;return buf;}}