結果
問題 | 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); } }