結果
| 問題 |
No.110 しましまピラミッド
|
| コンテスト | |
| ユーザー |
YamaKasa
|
| 提出日時 | 2018-07-07 22:44:24 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 134 ms / 5,000 ms |
| コード長 | 1,499 bytes |
| コンパイル時間 | 2,555 ms |
| コンパイル使用メモリ | 77,720 KB |
| 実行使用メモリ | 54,412 KB |
| 最終ジャッジ日時 | 2024-12-31 11:47:53 |
| 合計ジャッジ時間 | 7,154 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 26 |
ソースコード
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int Nw = scan.nextInt();
int []W = new int[Nw];
for(int i = 0; i < Nw; i++) {
W[i] = scan.nextInt();
}
int Nb = scan.nextInt();
int []B = new int[Nb];
for(int i = 0; i < Nb; i++) {
B[i] = scan.nextInt();
}
scan.close();
Arrays.sort(W);
Arrays.sort(B);
// 白が一番下の場合
int n = Math.max(Nw, Nb);
int max1 = 1;
int h = W[Nw - 1];
int flag = 0;
for(int i = 2 * n; i >= 0; i--) {
switch(flag) {
case 0:
for(int j = Nb - 1; j >= 0; j--) {
if(h > B[j]) {
max1++;
h = B[j];
flag = 1;
break;
}
}
break;
case 1:
for(int j = Nw - 2; j >= 0; j--) {
if(h > W[j]) {
max1 ++;
flag = 0;
h = W[j];
break;
}
}
break;
}
}
// 黒が一番下の場合
int max2 = 1;
int h2 = B[Nb - 1];
int flag2 = 0;
for(int i = 2 * n; i >= 0; i--) {
switch(flag2) {
case 0:
for(int j = Nw - 1; j >= 0; j--) {
if(h2 > W[j]) {
max2++;
h2 = W[j];
flag2 = 1;
break;
}
}
break;
case 1:
for(int j = Nb - 2; j >= 0; j--) {
if(h2 > B[j]) {
max2 ++;
flag2 = 0;
h2 = B[j];
break;
}
}
break;
}
}
int ans = Math.max(max1, max2);
System.out.println(ans);
}
}
YamaKasa