Submission #8244626


Source Code Expand

#include <iostream>
#include <array>

using namespace std;
typedef long long ll;
#define REP(i,n) for (ll i = 0; i < (n); ++i)

const int SIZE = 30;
const array<int, 4> dx = {1, 0, 0, -1};
const array<int, 4> dy = {0, 1, -1, 0};

array<array<int, SIZE>, SIZE> a;

int main(){
    REP(i, SIZE){
        REP(j, SIZE){
            cin >> a[i][j];
        }
    }

    while(1){
        int sx = 0, sy = 0;
        REP(i, SIZE){
            REP(j, SIZE){
                if(a[i][j] == 0){ continue; }
                bool istop = true;
                REP(k, dx.size()){
                    if(i + dx[k] < 0 || j + dx[k] >= SIZE ||
                       j + dy[k] < 0 || i + dy[k] >= SIZE){
                        continue;
                    }else if(a[i + dx[k]][j + dy[k]] > a[i][j]){
                        istop = false;
                        break;
                    }
                }
                if(istop){
                    sx = i;
                    sy = j;
                }
            }
        }
        if(a[sx][sy] == 0){
            break;
        }
        cout << sx + 1 << ' ' << sy + 1 << endl;
        a[sx][sy]--;
        while(a[sx][sy] > 0){
            bool moved = false;
            REP(k, dx.size()){
                if(sx + dx[k] < 0 || sx + dx[k] >= SIZE ||
                   sy + dy[k] < 0 || sy + dy[k] >= SIZE){
                    continue;
                }else if(a[sx + dx[k]][sy + dy[k]] == a[sx][sy]){
                    sx += dx[k];
                    sy += dy[k];
                    a[sx][sy]--;
                    cout << sx + 1 << ' ' << sy + 1 << endl;
                    moved = true;
                    break;
                }
            }
            if(!moved){
                break;
            }
        }
    }
    return 0;
}

Submission Info

Submission Time
Task A - 高橋君の山崩しゲーム
User sensaur
Language C++14 (Clang 3.8.0)
Score 870251
Code Size 1869 Byte
Status AC
Exec Time 154 ms
Memory 512 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
Score / Max Score 87551 / 100000 86790 / 100000 87416 / 100000 86908 / 100000 86650 / 100000 86692 / 100000 87424 / 100000 86646 / 100000 87305 / 100000 86869 / 100000
Status
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
Case Name Status Exec Time Memory
subtask_01_01.txt AC 142 ms 512 KB
subtask_01_02.txt AC 149 ms 512 KB
subtask_01_03.txt AC 146 ms 512 KB
subtask_01_04.txt AC 154 ms 512 KB
subtask_01_05.txt AC 149 ms 512 KB
subtask_01_06.txt AC 147 ms 512 KB
subtask_01_07.txt AC 149 ms 512 KB
subtask_01_08.txt AC 152 ms 512 KB
subtask_01_09.txt AC 149 ms 512 KB
subtask_01_10.txt AC 151 ms 512 KB