結果
問題 | No.161 制限ジャンケン |
ユーザー |
![]() |
提出日時 | 2015-03-05 23:48:18 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 142 ms / 5,000 ms |
コード長 | 1,176 bytes |
コンパイル時間 | 2,018 ms |
コンパイル使用メモリ | 77,448 KB |
実行使用メモリ | 41,752 KB |
最終ジャッジ日時 | 2024-11-30 04:26:05 |
合計ジャッジ時間 | 5,093 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
package no161;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int gx = sc.nextInt();int cx = sc.nextInt();int px = sc.nextInt();int gy = 0, cy = 0, py = 0;char[] s = sc.next().toCharArray();int n = s.length;for(int i=0;i<n;i++) {if (s[i] == 'G') {gy++;}else if(s[i] == 'C') {cy++;}else{py++;}}int max = 0;for(int gg=0;gg<=300;gg++) {if (gg > gx || gg > gy) {break;}for(int gc=0;gc<=300;gc++) {if (gg+gc > gx || gc > cy) {break;}for(int cg=0;cg<=300;cg++) {if (gg+cg > gy || cg > cx) {break;}int gp = gx - gg - gc;int pg = gy - gg - cg;if (gp > py || pg > px) {continue;}int cp = Math.min(cx - cg, py - gp);int cc = cx - cg - cp;int pp = py - gp - cp;// System.out.println("---");// System.out.println(gg + " " + gc + " " + gp + "\n" + cg + " " + cc + " " + cp + "\n" + pg + " " + (px - pg - pp) + " " + pp);max = Math.max(max, (gc + cp + pg) * 3 + gg + cc + pp);}}}System.out.println(max);}}