Submission #9889273


Source Code Expand

#define _USE_MATH_DEFINES
#include <iostream>
#include <string>
#include <utility>
#include <stack>
#include <vector>
#include <queue>
#include <algorithm>
#include <map>
#include <climits>
#include <set>
#include <cmath>
#include <numeric>
#include <iomanip>
#include <random>
#include <chrono>

using namespace std;
const int N = 30;
int A[30][30];
int ans_size = 0;
int h_moves[4] = {-1, 1, 0, 0};
int w_moves[4] = {0, 0, -1, 1};
vector <pair<int, int> > ans;
chrono::system_clock::time_point start;
chrono::system_clock::time_point cur_time;
void input(){
  for(int i = 0; i < N; i++){
    for(int j = 0; j < N; j++){
      cin >> A[i][j];
    }
  }
}

void solve(){
  for(int i = 0; i < N; i++){
    for(int j = 0; j < N; j++){
      while(A[i][j] != 0){
        ans.push_back(make_pair(i + 1, j + 1));
        ans_size ++;
        A[i][j] --;
        int cur_i = i;
        int cur_j = j;
        while(true){
          bool changed = false;
          for(int k = 0; k < 4; k++){
            int next_i = cur_i + h_moves[k];
            int next_j = cur_j + w_moves[k];
            if(0 <= next_i && next_i < N && 0 <= next_j && next_j < N){
              if(A[cur_i][cur_j] == A[next_i][next_j] && A[next_i][next_j] != 0){
                ans.push_back(make_pair(next_i + 1, next_j + 1));
                ans_size ++;
                A[next_i][next_j] --;
                changed = true;
                cur_i = next_i;
                cur_j = next_j;
                break;
              }
            }
          }
          if(!changed){
            break;
          }
        }

      }
    }
  }
}

void output(){
  for(int i = 0; i < ans.size(); i++){
    cout << ans[i].first << " " << ans[i].second << endl;
  }
}

int main(void){
  start = chrono::system_clock::now();
  input();
  solve();
  output();
  return 0;
}

Submission Info

Submission Time
Task A - 高橋君の山崩しゲーム
User katom
Language C++14 (GCC 5.4.1)
Score 736139
Code Size 1914 Byte
Status AC
Exec Time 81 ms
Memory 1016 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 74594 / 100000 72774 / 100000 73536 / 100000 72069 / 100000 74161 / 100000 73681 / 100000 73344 / 100000 75122 / 100000 73344 / 100000 73514 / 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 72 ms 1016 KB
subtask_01_02.txt AC 76 ms 1016 KB
subtask_01_03.txt AC 75 ms 1016 KB
subtask_01_04.txt AC 78 ms 1016 KB
subtask_01_05.txt AC 75 ms 1016 KB
subtask_01_06.txt AC 74 ms 1016 KB
subtask_01_07.txt AC 75 ms 1016 KB
subtask_01_08.txt AC 74 ms 1016 KB
subtask_01_09.txt AC 81 ms 1016 KB
subtask_01_10.txt AC 77 ms 1016 KB