結果

問題 No.43 野球の試合
ユーザー nCk_cv
提出日時 2016-07-22 13:13:31
言語 Java
(openjdk 23)
結果
WA  
実行時間 -
コード長 4,394 bytes
コンパイル時間 3,187 ms
コンパイル使用メモリ 81,008 KB
実行使用メモリ 54,348 KB
最終ジャッジ日時 2024-11-06 08:06:57
合計ジャッジ時間 5,565 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 3 WA * 4
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

import java.awt.geom.Point2D;
import java.io.*;
import java.math.*;
import java.util.*;
import java.util.Map.*;
class Main {
static class Data implements Comparable<Data> {
int id;
int count;
@Override
public int compareTo(Data o) {
return o.count - this.count;
}
public Data(int a, int b) {
id = a;
count = b;
}
}
public static void main(String[] args) {
//FastScanner sc = new FastScanner();
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[][] st = new int[N][N];
for(int i = 0; i < N; i++) {
char[] in = sc.next().toCharArray();
for(int j = 0; j < N; j++) {
if(in[j] == '#') st[i][j] = -1;
if(in[j] == 'o') st[i][j] = 1;
if(in[j] == 'x') st[i][j] = 2;
}
}
int ans = check(st,0,0);
System.out.println(ans);
}
static int check(int[][] st, int i, int j) {
if(i >= st.length) {
int[] count = new int[st.length];
for(int k = 0; k < st.length; k++) {
for(int l = 0; l < st[k].length; l++) {
if(st[k][l] == 1) count[k]++;
}
}
Data[] dd = new Data[st.length];
for(int k = 0; k < st.length; k++) {
dd[k] = new Data(k,count[k]);
}
Arrays.sort(dd);
int[] ck = new int[st.length];
int sk = 1;
for(int k = 0; k < st.length; k++) {
for(int l = k; l < st.length; l++) {
ck[dd[l].id] = sk;
if(l + 1 < st.length && dd[l+1].count != dd[l].count) {
break;
}
}
sk++;
}
return ck[0];
}
if(j >= st[i].length) {
return check(st,i+1,0);
}
if(st[i][j] != 0) return check(st,i,j+1);
int ret = 2 << 27;
st[i][j] = 1;
st[j][i] = 2;
ret = check(st,i,j+1);
st[i][j] = 2;
st[j][i] = 1;
ret = Math.min(check(st,i,j+1), ret);
return ret;
}
static class FastScanner {
private final InputStream in = System.in;
private final byte[] buffer = new byte[1024];
private int ptr = 0;
private int buflen = 0;
private boolean hasNextByte() {
if (ptr < buflen) {
return true;
}else{
ptr = 0;
try {
buflen = in.read(buffer);
} catch (IOException e) {
e.printStackTrace();
}
if (buflen <= 0) {
return false;
}
}
return true;
}
private int readByte() { if (hasNextByte()) return buffer[ptr++]; else return -1;}
private static boolean isPrintableChar(int c) { return 33 <= c && c <= 126;}
private void skipUnprintable() { while(hasNextByte() && !isPrintableChar(buffer[ptr])) ptr++;}
public boolean hasNext() { skipUnprintable(); return hasNextByte();}
public String next() {
if (!hasNext()) throw new NoSuchElementException();
StringBuilder sb = new StringBuilder();
int b = readByte();
while(isPrintableChar(b)) {
sb.appendCodePoint(b);
b = readByte();
}
return sb.toString();
}
public long nextLong() {
if (!hasNext()) throw new NoSuchElementException();
long n = 0;
boolean minus = false;
int b = readByte();
if (b == '-') {
minus = true;
b = readByte();
}
if (b < '0' || '9' < b) {
throw new NumberFormatException();
}
while(true){
if ('0' <= b && b <= '9') {
n *= 10;
n += b - '0';
}else if(b == -1 || !isPrintableChar(b)){
return minus ? -n : n;
}else{
throw new NumberFormatException();
}
b = readByte();
}
}
public int nextInt() {
if (!hasNext()) throw new NoSuchElementException();
int n = 0;
boolean minus = false;
int b = readByte();
if (b == '-') {
minus = true;
b = readByte();
}
if (b < '0' || '9' < b) {
throw new NumberFormatException();
}
while(true){
if ('0' <= b && b <= '9') {
n *= 10;
n += b - '0';
}else if(b == -1 || !isPrintableChar(b)){
return minus ? -n : n;
}else{
throw new NumberFormatException();
}
b = readByte();
}
}
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0