Biznes Məsələləri#12238

Biznes Məsələləri (Həll təhlili)

Problem Müəllifi:

Andriy Kholod (Connect)

Hazırlayan:

Andriy Kholod (Connect)

Analiz:

Andriy Kholod (Connect)

Həll

İki halı nəzərdən keçirin. Birinci hal, ilk ofisi birinci, ikinci ofisi isə ikinci ziyarət etdiyimiz haldır. İkinci hal, ikinci ofisi birinci, birinci ofisi isə ikinci ziyarət etdiyimiz haldır. Onda yalnız bu iki halda hər ofisdə tapşırıqlarımızı tamamlayıb-tamamlamayacağımızı yoxlamaq lazımdır.

Həllin asimptotik mürəkkəbliyi O(1)-dir.

#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define speed ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define endl '\n'
#define yes cout<<"1"<<endl
#define no cout<<"0"<<endl

void solve() {

    ll r1 , r2 , r3;

    cin>>r1>>r2>>r3;

    ll q1 , q2 , t1;

    cin>>q1>>q2>>t1;

    ll w1 , w2 , t2;
    
    cin>>w1>>w2>>t2;

    bool ok = 0;

    // birinci ofis birinci olacaq

    ll road = min(r1 , r2+r3);

    if (max(road , q1) + t1 <= q2 && max(max(road , q1) + t1 + min(r3 , r1+r2) , w1) + t2 <= w2 ) ok = 1;

    // ikinci ofis birinci olacaq

    road = min(r2 , r1+r3);

    if (max(road , w1) + t2 <= w2 && max(max(road , w1) + t2 + min(r3 , r1+r2) , q1) + t1 <= q2 ) ok = 1;

    if (ok) yes;
    else no;

}



signed main() {
    speed;
    int test;
    test=1;
    cin>>test;
    for (int tt=1 ;tt<=test ; tt++) {
        solve();
    }

    return 0;

}