結果
問題 |
No.204 ゴールデン・ウィーク(2)
|
ユーザー |
![]() |
提出日時 | 2018-08-11 20:01:36 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,773 bytes |
コンパイル時間 | 2,300 ms |
コンパイル使用メモリ | 86,348 KB |
実行使用メモリ | 55,176 KB |
最終ジャッジ日時 | 2024-09-23 06:21:30 |
合計ジャッジ時間 | 10,232 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 14 WA * 32 |
ソースコード
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; public class Main { static int []a; static int ans = 0; static List<Integer> list; static char[]c; public static void main(String[] args) { Scanner scan = new Scanner(System.in); int D = scan.nextInt(); String C1 = scan.next(); String C2 = scan.next(); scan.close(); c = new char[14]; int cnt = 0; list = new ArrayList<Integer>(); for(int i = 0; i < 7; i++) { char c1 = C1.charAt(i); char c2 = C2.charAt(i); c[i] = c1; c[i + 7] = c2; if(c1 == 'x') { cnt++; list.add(i); } if(c2 == 'x') { cnt++; list.add(i + 1); } } Collections.sort(list); if(cnt <= D) { System.out.println("14"); System.exit(0); } a = new int[cnt]; comb(1, D); System.out.println(ans); } static void comb(int m, int r) { int n = a.length; if(n == r) { return; }else if(n < r){ System.out.println("エラー"); System.exit(0); } if(m <= r) { int k = a[m - 1] + 1; for(int i = k; i <= n - r + m; i++){ a[m] = i; comb(m + 1, r); } } else { char[]b = new char[14]; for(int i = 0; i < 14; i++) { b[i] = c[i]; } for(int i = 1; i <= r; i++) { //System.out.println(a[i]); b[a[i] - 1] = 'o'; } int t = solve(b); if(ans < t) { ans = t; } } } static int solve(char []c) { int k = 0; int max = 0; for(int i = 0; i < 14; i++) { if(c[i] == 'o') { k++; }else { k = 0; } if(max < k) { max = k; } } return max; } }