提出 #71325129


ソースコード 拡げる

#include <bits/stdc++.h>

#include <atcoder/all>

using namespace std;
using namespace atcoder;

#define int long long
#define ALL(x) (x).begin(), (x).end()
#define MAX(x) *max_element(ALL(x))
#define MIN(x) *min_element(ALL(x))

typedef pair<int, int> PI;
typedef pair<int, pair<int, int>> PII;
static const int INF = 1010000000000000017LL;
static const double eps = 1e-12;
static const double pi = 3.14159265358979323846;
static const int dx[4] = {1, -1, 0, 0};
static const int dy[4] = {0, 0, 1, -1};
static const int ddx[8] = {1, -1, 0, 0, 1, 1, -1, -1};
static const int ddy[8] = {0, 0, 1, -1, 1, -1, 1, -1};

template <class T>
inline bool chmin(T& a, T b) {
    if (a > b) {
        a = b;
        return true;
    }
    return false;
}
template <class T>
inline bool chmax(T& a, T b) {
    if (a < b) {
        a = b;
        return true;
    }
    return false;
}

int T;

void solve() {
    int N, H;
    cin >> N >> H;
    vector<tuple<int, int, int>> X;
    for (int i = 0; i < N; ++i) {
        int x, l, u;
        cin >> x >> l >> u;
        X.push_back({x, l, u});
    }
    int pre_t = 0, pre_l = H, pre_u = H;
    for (int i = 0; i < N; ++i) {
        auto [t, l, u] = X[i];
        // cout << t << " " << l << " " << u << endl;
        // cout << pre_t << " " << pre_l << " " << pre_u << endl;
        // l について
        int l_ma = pre_l + t - pre_t;
        int l_mi = pre_l - (t - pre_t);
        chmin(l_ma, l);
        chmax(l_mi, u);

        // u について
        int u_ma = pre_u + t - pre_t;
        int u_mi = pre_u - (t - pre_t);
        chmin(u_ma, l);
        chmax(u_mi, u);

        pre_l = min(l_mi, u_mi);
        pre_u = max(l_ma, u_ma);

        // cout << l_ma << " " << l_mi << endl;
        // cout << u_ma << " " << u_mi << endl;

        // cout << pre_l << " " << pre_u << endl;

        if (!(pre_l >= l && pre_l <= u && pre_u >= l && pre_u <= u)) {
            cout << "No" << endl;
            return;
        }

        pre_t = t;
    }

    cout << "Yes" << endl;
}

signed main() {
    cin >> T;
    while (T--) {
        solve();
    }
}

提出情報

提出日時
問題 C - Flapping Takahashi
ユーザ tsuyosshi
言語 C++23 (GCC 15.2.0)
得点 0
コード長 2189 Byte
結果 WA
実行時間 135 ms
メモリ 6620 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 300
結果
AC × 1
AC × 23
WA × 6
セット名 テストケース
Sample 00_sample_00.txt
All 00_sample_00.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 01_small_04.txt, 01_small_05.txt, 01_small_06.txt, 01_small_07.txt, 02_random_00.txt, 02_random_01.txt, 02_random_02.txt, 02_random_03.txt, 02_random_04.txt, 02_random_05.txt, 02_random_06.txt, 02_random_07.txt, 02_random_08.txt, 02_random_09.txt, 02_random_10.txt, 02_random_11.txt, 02_random_12.txt, 02_random_13.txt, 02_random_14.txt, 02_random_15.txt, 02_random_16.txt, 02_random_17.txt, 02_random_18.txt, 02_random_19.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 3584 KiB
01_small_00.txt AC 135 ms 3592 KiB
01_small_01.txt WA 103 ms 3460 KiB
01_small_02.txt WA 92 ms 3428 KiB
01_small_03.txt WA 84 ms 3572 KiB
01_small_04.txt WA 76 ms 3556 KiB
01_small_05.txt WA 72 ms 3576 KiB
01_small_06.txt AC 70 ms 3564 KiB
01_small_07.txt AC 69 ms 3592 KiB
02_random_00.txt AC 56 ms 6560 KiB
02_random_01.txt AC 69 ms 6584 KiB
02_random_02.txt AC 70 ms 6576 KiB
02_random_03.txt AC 62 ms 6516 KiB
02_random_04.txt AC 70 ms 6532 KiB
02_random_05.txt AC 69 ms 6556 KiB
02_random_06.txt AC 56 ms 6584 KiB
02_random_07.txt AC 70 ms 6588 KiB
02_random_08.txt AC 70 ms 6592 KiB
02_random_09.txt AC 37 ms 5064 KiB
02_random_10.txt AC 70 ms 6620 KiB
02_random_11.txt AC 69 ms 6532 KiB
02_random_12.txt AC 70 ms 6612 KiB
02_random_13.txt AC 70 ms 6612 KiB
02_random_14.txt AC 70 ms 6588 KiB
02_random_15.txt WA 70 ms 6560 KiB
02_random_16.txt AC 70 ms 6588 KiB
02_random_17.txt AC 70 ms 6536 KiB
02_random_18.txt AC 70 ms 6616 KiB
02_random_19.txt AC 70 ms 6520 KiB