結果
| 問題 | No.3558 Dominoes, Black and White |
| コンテスト | |
| ユーザー |
msksknkn
|
| 提出日時 | 2026-06-06 20:24:01 |
| 言語 | Java (openjdk 25.0.2) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 817 bytes |
| 記録 | |
| コンパイル時間 | 4,598 ms |
| コンパイル使用メモリ | 83,524 KB |
| 実行使用メモリ | 66,268 KB |
| 最終ジャッジ日時 | 2026-06-06 20:24:33 |
| 合計ジャッジ時間 | 28,210 ms |
|
ジャッジサーバーID (参考情報) |
judge1_1 / judge3_1 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 部分点 | 10 % | AC * 17 WA * 13 |
| 満点 | 90 % | AC * 21 WA * 68 |
| 合計 | 0 点 |
ソースコード
package no3558_dominos_black_and_white;
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] s = new String[n];
int[] cnt = new int[n];
long ans = 0;
ArrayDeque<Integer> q = new ArrayDeque<>();
for(int i = 0;i < n;i++) {
s[i] = sc.next();
for(int j = 0;j < 2 * n;j++) {
if(s[i].charAt(j) == '.') {
ans += j - cnt[i];
if(cnt[i] >= n) {
q.add(n * i + j);
}
cnt[i]++;
}
}
}//System.out.println(q);
for(int i = 0;i < n;i++) {
for(int j = cnt[i];j < n;j++) {
int v = q.poll();
int a = v / n;
int b = v % n;
ans += Math.abs(a - i) + Math.abs(b - j);
}
}System.out.println(ans);
}
}
msksknkn