寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

Aizu Online Judge in C++ #Volume26 : 2600 - Koto Distance

Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。

・問題 "Koto Distance"
https://onlinejudge.u-aizu.ac.jp/problems/2600
Koto距離
僕が作成、提出したコードは、以下のとおりです。

・Aizu Online Judge in C++ #Volume26 - 2600 : Koto Distance
/*
Aizu Online Judge in C++ #Volume26 - 2600 : Koto Distance
 https://onlinejudge.u-aizu.ac.jp/problems/2600
 提出コードの解答例
 https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
ll x[100010],y[100010];
int main(void){
    ll n,w,h,a,b,c,d=0;
    cin>>n>>w>>h;
    for(ll i=0;i<n;i++){
        cin>>a>>b>>c;
        y[max(0LL,b-c)]--;
		y[min(h,b+c)]++;
		x[max(0LL,a-c)]--;
		x[min(w,a+c)]++;
    }
    for(ll i=1;i<=h;i++){
        y[i]+=y[i-1];
    }
    for(ll i=1;i<=w;i++){
        x[i]+=x[i-1];
    }
    for(ll i=0;i<h;i++){
        if(y[i]==0){
            d++;
            break;
        }
    }
    for(ll i=0;i<w;i++){
        if(x[i]==0){
            d++;
            break;
        }
    }
    if(d==2){
        cout<<"No\n";
    }else{
        cout<<"Yes\n";
    }
    return 0;
}

設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/