結果
| 問題 |
No.274 The Wall
|
| ユーザー |
ぴろず
|
| 提出日時 | 2015-08-28 22:59:25 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 221 ms / 2,000 ms |
| コード長 | 1,198 bytes |
| コンパイル時間 | 2,444 ms |
| コンパイル使用メモリ | 87,296 KB |
| 実行使用メモリ | 59,736 KB |
| 最終ジャッジ日時 | 2025-03-17 18:46:28 |
| 合計ジャッジ時間 | 8,347 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 23 |
ソースコード
package no274;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println(new Main().solve() ? "YES" : "NO");
}
int m;
public boolean solve() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
m = sc.nextInt();
Block[] b = new Block[n];
for(int i=0;i<n;i++) {
b[i] = new Block(sc.nextInt(),sc.nextInt());
}
Arrays.sort(b);
int l = 0;
int r = m-1;
for(int i=0;i<n;i++) {
int bl = b[i].l;
int br = b[i].r;
if (l <= bl) {
if (br > r) {
return false;
}
l = br + 1;
}else{
int temp = bl;
bl = m - 1 - br;
br = m - 1 - temp;
if (l <= bl && br <= r) {
r = bl - 1;
}else{
return false;
}
}
}
return true;
}
class Block implements Comparable<Block>{
int l,r;
public Block(int l,int r) {
if (l <= m-1-r) {
this.l = l;
this.r = r;
}else{
this.l = m - 1 - r;
this.r = m - 1 - l;
}
}
public int compareTo(Block o) {
if (l != o.l) {
return Integer.compare(l, o.l);
}
return Integer.compare(r, o.r);
}
public String toString() {
return "[" + l + "," + r + "]";
}
}
}
ぴろず