This page looks best with JavaScript enabled

ARC051A – 塗り絵

 ·   ·  ☕ 1 min read  ·  ✍️ reud · 👀... views

これリアルでやってたら二点間距離に気づかずにおわおわになるやつ

右下、うまく四角形描けなくて申し訳ない

A - 塗り絵

こんな感じの場合分けを作り出す問題本当に苦手なので得意になっていきたい・・・・

塗り絵

#include <bits/stdc++.h>
#define INF 1e9
using namespace std;

#define REPR(i,n) for(int i=(n); i >= 0; --i)
#define FOR(i, m, n) for(int i = (m); i < (n); ++i)
#define REP(i, n) for(int i=0, i##_len=(n); i<i##_len; ++i)
#define ALL(a)  (a).begin(),(a).end()

template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return true; } return false; }
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return true; } return false; }
int gcd(int a,int b){return b?gcd(b,a%b):a;}
typedef long long ll;
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}

int main() {
    int x1,y1,r;
    cin >> x1 >> y1 >> r;

    int x2,y2,x3,y3;
    cin >> x2 >> y2 >> x3 >> y3;

    // 赤く塗られた部分があるかどうかの判定
    if (y1+r <= y3 && y1-r >= y2 && x1-r >= x2 && x1+r <= x3) cout << "NO" << endl;
    else cout << "YES" << endl;

    auto d1 = sqrt(pow((x2-x1),2)+pow((y2-y1),2));
    auto d2 = sqrt(pow((x2-x1),2)+pow((y3-y1),2));
    auto d3 = sqrt(pow((x3-x1),2)+pow((y3-y1),2));
    auto d4 = sqrt(pow((x3-x1),2)+pow((y2-y1),2));

    if ( r >= d1 &&  r >= d2 &&  r >= d3 &&  r >= d4 ) cout << "NO" << endl;
    else cout << "YES" << endl;
}
Share on

reud
WRITTEN BY
reud
Stundent