提出 #35678096


ソースコード 拡げる

// #define _GLIBCXX_DEBUG
#include <bits/stdc++.h>
using namespace std;
#include <atcoder/all>
using namespace atcoder;
using ll = long long;
using vi = vector<int>;
using vvi = vector<vector<int>>;
using pii = pair<int, int>;
#define rep(i, n) for (int i = 0; i < (int)(n); ++i)
#define repr(i, n) for (int i = (int)(n - 1); i >= 0; --i)

int main() {
    int h, w, x, y;
    cin >> h >> w >> x >> y;
    x--, y--;
    set<pii> r, c;
    int n;
    cin >> n;
    rep(i, n) {
        int a, b;
        cin >> a >> b;
        a--, b--;
        r.insert(pii(a, b));
        c.insert(pii(b, a));
    }
    int q;
    cin >> q;
    while (q--) {
        char d;
        int l;
        cin >> d >> l;
        if (d == 'L') {
            int ty = max(y - l, 0);
            auto cit = r.lower_bound(pii(x, y));
            auto tit = r.lower_bound(pii(x, ty));
            if (cit == tit) {
                y = ty;
            } else {
                x = (*tit).first;
                y = (*tit).second + 1;
            }
        }
        if (d == 'R') {
            int ty = min(y + l, w - 1);
            auto cit = r.upper_bound(pii(x, y));
            auto tit = r.upper_bound(pii(x, ty));
            if (cit == tit) {
                y = ty;
            } else {
                x = (*cit).first;
                y = (*cit).second - 1;
            }
        }
        if (d == 'U') {
            int tx = max(x - l, 0);
            auto cit = c.lower_bound(pii(y, x));
            auto tit = c.lower_bound(pii(y, tx));
            if (cit == tit) {
                x = tx;
            } else {
                y = (*tit).first;
                x = (*tit).second + 1;
            }
        }
        if (d == 'D') {
            int tx = min(x + l, h - 1);
            auto cit = c.upper_bound(pii(y, x));
            auto tit = c.upper_bound(pii(y, tx));
            if (cit == tit) {
                x = tx;
            } else {
                y = (*cit).first;
                x = (*cit).second - 1;
            }
        }
        printf("%d %d\n", x + 1, y + 1);
    }
    return 0;
}

提出情報

提出日時
問題 D - LRUD Instructions
ユーザ baLoon
言語 C++ (GCC 9.2.1)
得点 0
コード長 2171 Byte
結果 WA
実行時間 778 ms
メモリ 23144 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 400
結果
AC × 2
AC × 15
WA × 14
セット名 テストケース
Sample example0.txt, example1.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, example0.txt, example1.txt
ケース名 結果 実行時間 メモリ
000.txt AC 365 ms 3580 KiB
001.txt AC 366 ms 3652 KiB
002.txt AC 366 ms 3712 KiB
003.txt WA 665 ms 22344 KiB
004.txt WA 650 ms 22404 KiB
005.txt WA 674 ms 22464 KiB
006.txt WA 661 ms 22444 KiB
007.txt AC 369 ms 4404 KiB
008.txt AC 778 ms 23144 KiB
009.txt AC 142 ms 8060 KiB
010.txt AC 362 ms 12876 KiB
011.txt AC 393 ms 16928 KiB
012.txt AC 608 ms 19236 KiB
013.txt AC 761 ms 22544 KiB
014.txt AC 772 ms 22436 KiB
015.txt AC 767 ms 22472 KiB
016.txt AC 761 ms 22456 KiB
017.txt WA 624 ms 22332 KiB
018.txt WA 641 ms 22376 KiB
019.txt WA 616 ms 22340 KiB
020.txt WA 611 ms 22356 KiB
021.txt WA 647 ms 22356 KiB
022.txt WA 653 ms 22404 KiB
023.txt WA 665 ms 22440 KiB
024.txt WA 676 ms 22332 KiB
025.txt WA 657 ms 22380 KiB
026.txt WA 667 ms 22336 KiB
example0.txt AC 2 ms 3608 KiB
example1.txt AC 2 ms 3600 KiB