結果
問題 | No.43 野球の試合 |
ユーザー | tsunabit |
提出日時 | 2019-09-09 11:12:17 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 366 ms / 5,000 ms |
コード長 | 1,291 bytes |
コンパイル時間 | 3,631 ms |
コンパイル使用メモリ | 77,644 KB |
実行使用メモリ | 49,876 KB |
最終ジャッジ日時 | 2024-06-28 11:05:14 |
合計ジャッジ時間 | 5,730 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 7 |
ソースコード
import java.util.*; import java.io.*; import java.math.*; public class No43 { public static int ans = 99; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = Integer.parseInt(sc.nextLine()); String[][] s = new String[n][n]; for(int i = 0; i < n; i++) { s[i] = sc.nextLine().split(""); } dfs(s, n); System.out.println(ans); } public static void dfs(String[][] s, int n) { String[][] map1 = copy(s); for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if("-".equals(map1[i][j])) { map1[i][j] = "o"; map1[j][i] = "x"; dfs(map1, n); map1[i][j] = "x"; map1[j][i] = "o"; dfs(map1, n); return; } } } int[] kati = new int[n]; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if("o".equals(map1[i][j])) kati[i]++; } } int temp = kati[0]; int r = 1; int ima = 99; Arrays.sort(kati); for(int i = n-1; i >= 0; i--) { if(temp < kati[i] && ima > kati[i]) { r++; ima = kati[i]; } } if(ans > r) { ans = r; } } static String[][] copy(String[][] from){ int aa = from[0].length; String[][] to = new String[aa][aa]; for(int i=0;i<aa;i++){ for(int j=0;j<aa;j++){ to[i][j]=from[i][j]; } } return to; } }