結果
問題 | No.274 The Wall |
ユーザー |
![]() |
提出日時 | 2015-09-17 20:15:06 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 1,558 bytes |
コンパイル時間 | 688 ms |
コンパイル使用メモリ | 70,916 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-06-22 02:06:44 |
合計ジャッジ時間 | 1,462 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 22 |
ソースコード
#include <iostream>#include <vector>#include <algorithm>#include <cmath>#define FORR(i,b,e) for(int i=(b);i<(int)(e);++i)#define FOR(i,e) FORR(i,0,e)#define sortuniq(v) sort(v.begin(), v.end()), v.erase(unique(v.begin(),v.end()),v.end())#define dump(var) cerr << #var ": " << var << "\n"#define dumpc(con) for(auto& e: con) cerr << e << " "; cerr<<"\n"typedef long long ll;typedef unsigned long long ull;const double EPS = 1e-6;const int d4[] = {0, -1, 0, 1, 0};using namespace std;int N, M;struct Row {int l, r;void flip() {int t = M - 1 - l;l = M - 1 - r;r = t;}bool operator<(const Row &o) const {return l != o.l? l < o.l: r < o.r;}};int main() {cin.tie(0);ios::sync_with_stdio(false);cin >> N >> M;vector<Row> row(N);FOR(i, N) {cin >> row[i].l >> row[i].r;if (row[i].l >= M/2) row[i].flip();}sort(row.begin(), row.end());vector<int> w(M, -1);FOR(i, N) {bool overlap = false;FORR(j, row[i].l, row[i].r+1) {if (w[j] >= 0) {overlap = true;break;}}if (overlap) {row[i].flip();FORR(j, row[i].l, row[i].r+1) {if (w[j] >= 0) {goto FAILURE;}}}FORR(j, row[i].l, row[i].r+1) w[j] = i;}// dumpc(w);cout << "YES" << endl;return 0;FAILURE:cout << "NO" << endl;return 0;}