yukicoder 274 The Wall

2015/08/29 (Sat) yukicoder アドホック

問題

問題文

方針

全ての横棒が $2$ 本ずつあり,高さも $2N$ だとすると,

  • ある横棒とその左右反転を両方使わないといけない
  • 縦の列に $2$ つまでピンクが入っても OK

という条件を満たすか?という問題に変わる.これを解くのは簡単で,各列に何個ピンクがあるか数えてそれが $2$ 以下であるか判定すれば良い.

実装

int main(){
    int n,m;
    while(cin >> n >> m){
        vi a(m);
        rep(i,n){
            int l,r;
            cin >> l >> r;
            r++;
            loop(j,l,r) a[j]++, a[m-j-1]++;
        }
        bool ok = true;
        rep(i,m) ok &= a[i] <= 2;
        puts(ok ? "YES" : "NO");
    }
}

なぜかとても調子が良かったぜ