結果
問題 | No.274 The Wall |
ユーザー |
![]() |
提出日時 | 2015-08-29 00:04:22 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 7 ms / 2,000 ms |
コード長 | 1,780 bytes |
コンパイル時間 | 854 ms |
コンパイル使用メモリ | 86,828 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-22 02:01:38 |
合計ジャッジ時間 | 1,366 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 22 |
ソースコード
#include<sstream>#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<string>#include<vector>#include<set>#include<map>#include<queue>#include<numeric>#include<functional>#include<algorithm>#include<bitset>using namespace std;#define INF (1<<29)#define rep(i,n) for(int i=0;i<(int)(n);i++)#define all(v) v.begin(),v.end()#define uniq(v) v.erase(unique(all(v)),v.end())#define indexOf(v,x) (find(all(v),x)-v.begin())int n,m;pair<int,int> b[2000];bool cmp(pair<int,int> a,pair<int,int> b){int x=min(a.first,m-1-a.second);int y=min(b.first,m-1-b.second);return x<y;}int main(){cin>>n>>m;rep(i,n)cin>>b[i].first>>b[i].second;sort(b,b+n,cmp);bool used[2000]={};bool filled[4000]={};rep(i,n){bool ok=true;if(b[i].first < m-1-b[i].second){for(int j=b[i].first;j<=b[i].second;j++){if(filled[j])ok=false;}if(ok){for(int j=b[i].first;j<=b[i].second;j++){filled[j]=true;}used[i]=true;}}else{for(int j=m-1-b[i].second;j<=m-1-b[i].first;j++){if(filled[j])ok=false;}if(ok){for(int j=m-1-b[i].second;j<=m-1-b[i].first;j++){filled[j]=true;}used[i]=true;}}}rep(i,n){if(used[i])continue;bool ok=true;if(b[i].first < m-1-b[i].second){for(int j=m-1-b[i].second;j<=m-1-b[i].first;j++){if(filled[j])ok=false;}if(ok){for(int j=m-1-b[i].second;j<=m-1-b[i].first;j++){filled[j]=true;}used[i]=true;}}else{for(int j=b[i].first;j<=b[i].second;j++){if(filled[j])ok=false;}if(ok){for(int j=b[i].first;j<=b[i].second;j++){filled[j]=true;}used[i]=true;}}}cout<<(count(used,used+n,true)==n?"YES":"NO")<<endl;return 0;}