Submission #2165478


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

#define int long long

int dx[] = {1, 0, -1, 0, 1, -1, -1, 1};
int dy[] = {0, 1, 0, -1, 1, 1, -1, -1};

/*
#define cin ifs
#define cout ofs
ifstream ifs("in.txt");
ofstream ofs("out.txt");
//*/

int H, W, K, T;
int omp[30][30], nmp[30][30] = {};
int A[450], B[450], C[450], D[450];

// xorshiftを用いた乱数
unsigned int xor64(int range) {
    static unsigned int x = 88172645463325252ULL;
    x = x ^ (x << 13);
    x = x ^ (x >> 7);
    return (x = x ^ (x << 17)) % range;
}

void reset() {
    for (int i = 0; i < 30; i++) {
        for (int j = 0; j < 30; j++) {
            omp[i][j] = nmp[i][j];
        }
    }
    for (int i = 0; i < 30; i++) {
        for (int j = 0; j < 30; j++) {
            nmp[i][j] = -1;
        }
    }
}

signed main() {
    cin >> H >> W >> K >> T;
    reset();
    for (int i = 0; i < 450; i++) {
        cin >> A[i] >> B[i] >> C[i] >> D[i];
        A[i]--;
        B[i]--;
        C[i]--;
        D[i]--;
        nmp[A[i]][B[i]] = i;
    }
    cout << 50 << endl;
    for (int i = 0; i < 50; i++) {
        reset();
        for (int j = 0; j < 450; j++) {
            if (xor64(2) == 0) {
                int dy = (C[j] - A[j] > 0) - (C[j] - A[j] < 0);
                if ((omp[A[j] + dy][B[j]] != -1 && omp[A[j] + dy][B[j]] != j) ||
                    nmp[A[j] + dy][B[j]] != -1) {
                    dy = 0;
                }
                A[j] += dy;
                nmp[A[j]][B[j]] = j;
                switch (dy) {
                    case 1:
                        cout << 'D';
                        break;
                    case -1:
                        cout << 'U';
                        break;
                    case 0:
                        cout << '-';
                        break;
                }
            } else {
                int dx = (D[j] - B[j] > 0) - (D[j] - B[j] < 0);
                if ((omp[A[j]][B[j] + dx] != -1 && omp[A[j]][B[j] + dx] != j) ||
                    nmp[A[j]][B[j] + dx] != -1) {
                    dx = 0;
                }
                B[j] += dx;
                nmp[A[j]][B[j]] = j;
                switch (dx) {
                    case 1:
                        cout << 'R';
                        break;
                    case -1:
                        cout << 'L';
                        break;
                    case 0:
                        cout << '-';
                        break;
                }
            }
        }
        cout << endl;
    }
    return 0;
}

Submission Info

Submission Time
Task B - 日本橋大渋滞
User packer_jp
Language C++14 (GCC 5.4.1)
Score 4466
Code Size 2650 Byte
Status AC
Exec Time 3 ms
Memory 256 KB

Judge Result

Set Name test_01 test_02 test_03 test_04 test_05 test_06 test_07 test_08 test_09 test_10 test_11 test_12 test_13 test_14 test_15 test_16 test_17 test_18 test_19 test_20 test_21 test_22 test_23 test_24 test_25 test_26 test_27 test_28 test_29 test_30
Score / Max Score 153 / 50000 151 / 50000 147 / 50000 155 / 50000 163 / 50000 153 / 50000 149 / 50000 157 / 50000 139 / 50000 145 / 50000 154 / 50000 150 / 50000 141 / 50000 151 / 50000 144 / 50000 165 / 50000 151 / 50000 147 / 50000 141 / 50000 145 / 50000 158 / 50000 148 / 50000 148 / 50000 141 / 50000 141 / 50000 147 / 50000 149 / 50000 138 / 50000 149 / 50000 146 / 50000
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
test_01 subtask_01_01.txt
test_02 subtask_01_02.txt
test_03 subtask_01_03.txt
test_04 subtask_01_04.txt
test_05 subtask_01_05.txt
test_06 subtask_01_06.txt
test_07 subtask_01_07.txt
test_08 subtask_01_08.txt
test_09 subtask_01_09.txt
test_10 subtask_01_10.txt
test_11 subtask_01_11.txt
test_12 subtask_01_12.txt
test_13 subtask_01_13.txt
test_14 subtask_01_14.txt
test_15 subtask_01_15.txt
test_16 subtask_01_16.txt
test_17 subtask_01_17.txt
test_18 subtask_01_18.txt
test_19 subtask_01_19.txt
test_20 subtask_01_20.txt
test_21 subtask_01_21.txt
test_22 subtask_01_22.txt
test_23 subtask_01_23.txt
test_24 subtask_01_24.txt
test_25 subtask_01_25.txt
test_26 subtask_01_26.txt
test_27 subtask_01_27.txt
test_28 subtask_01_28.txt
test_29 subtask_01_29.txt
test_30 subtask_01_30.txt
Case Name Status Exec Time Memory
subtask_01_01.txt AC 3 ms 256 KB
subtask_01_02.txt AC 3 ms 256 KB
subtask_01_03.txt AC 3 ms 256 KB
subtask_01_04.txt AC 3 ms 256 KB
subtask_01_05.txt AC 3 ms 256 KB
subtask_01_06.txt AC 3 ms 256 KB
subtask_01_07.txt AC 3 ms 256 KB
subtask_01_08.txt AC 3 ms 256 KB
subtask_01_09.txt AC 3 ms 256 KB
subtask_01_10.txt AC 3 ms 256 KB
subtask_01_11.txt AC 3 ms 256 KB
subtask_01_12.txt AC 3 ms 256 KB
subtask_01_13.txt AC 3 ms 256 KB
subtask_01_14.txt AC 3 ms 256 KB
subtask_01_15.txt AC 3 ms 256 KB
subtask_01_16.txt AC 3 ms 256 KB
subtask_01_17.txt AC 3 ms 256 KB
subtask_01_18.txt AC 3 ms 256 KB
subtask_01_19.txt AC 3 ms 256 KB
subtask_01_20.txt AC 3 ms 256 KB
subtask_01_21.txt AC 3 ms 256 KB
subtask_01_22.txt AC 3 ms 256 KB
subtask_01_23.txt AC 3 ms 256 KB
subtask_01_24.txt AC 3 ms 256 KB
subtask_01_25.txt AC 3 ms 256 KB
subtask_01_26.txt AC 3 ms 256 KB
subtask_01_27.txt AC 3 ms 256 KB
subtask_01_28.txt AC 3 ms 256 KB
subtask_01_29.txt AC 3 ms 256 KB
subtask_01_30.txt AC 3 ms 256 KB