結果
問題 | No.43 野球の試合 |
ユーザー |
![]() |
提出日時 | 2015-08-11 18:46:18 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,340 bytes |
コンパイル時間 | 2,018 ms |
コンパイル使用メモリ | 78,268 KB |
実行使用メモリ | 50,524 KB |
最終ジャッジ日時 | 2024-07-18 06:45:25 |
合計ジャッジ時間 | 3,146 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 6 WA * 1 |
ソースコード
import java.io.*;import java.util.ArrayList;import java.util.Arrays;class Main{static final PrintWriter out=new PrintWriter(System.out);static final int INF=Integer.MAX_VALUE/2;static int ans=100;static class Pair{int x;int y;Pair(int x,int y){this.x=x; this.y=y;}}public static void main(String[] args) throws IOException{BufferedReader br=new BufferedReader(new InputStreamReader(System.in));String line="";while((line=br.readLine())!=null&&!line.isEmpty()){int n=Integer.parseInt(line);int[] win=new int[n];ArrayList<Pair> array=new ArrayList<Pair>();for(int i=0;i<n;i++){line=br.readLine();for(int j=0;j<n;j++){char c=line.charAt(j);if(c=='o') win[i]++;if(c=='-'&&i<j) array.add(new Pair(i,j));}}dfs(0,win,array);out.println(ans);out.flush();}}public static void dfs(int depth,int[] win,ArrayList<Pair> array){if(depth==array.size()||array.isEmpty()){int r=checkRank(win);ans=Math.min(ans,r);return;}Pair p=array.get(depth);int x=p.x;int y=p.y;win[x]++;dfs(depth+1,win,array);win[x]--;win[y]++;dfs(depth+1,win,array);}public static int checkRank(int[] win){int[] winc=(int [])win.clone();int cnt=1;int now;int prev=INF;Arrays.sort(winc);for(int i=winc.length-1;i>=0;i--){now=winc[i];if(win[0]==now) return cnt;if(win[0]<now&&prev!=now){cnt++;prev=now;}}return -1;}}