Submission #1986310


Source Code Expand

#include <iostream>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <algorithm>
#include <bitset>
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;

using ll = long long;
using P = pair<int, int>;

const int INF = 1e9;
const int MOD = 1e9 + 7;

// 4近傍、8近傍
int dx[] = {1, 0, -1, 0, 1, -1, -1, 1};
int dy[] = {0, 1, 0, -1, 1, 1, -1, -1};

int ans[3][3];

bool check() {
  // たて、横、斜めの和をsetに入れていき、最終的にサイズが1ならOK
  set<int> st;
  int sum;
  for (int i = 0; i < 3; i++) {
    sum = 0;
    for (int j = 0; j < 3; j++) {
      sum += ans[i][j];
    }
    st.insert(sum);
  }
  for (int i = 0; i < 3; i++) {
    sum = 0;
    for (int j = 0; j < 3; j++) {
      sum += ans[j][i];
    }
    st.insert(sum);
  }
  sum = 0;
  for (int i = 0, j = 0; i < 3; i++, j++) {
    sum += ans[i][j];
  }
  st.insert(sum);
  sum = 0;
  for (int i = 2, j = 0; i >= 0; i--, j++) {
    sum += ans[i][j];
  }
  st.insert(sum);

  return st.size() == 1;
}

int main() {
  // 入力
  int A, B, C;
  cin >> A >> B >> C;

  // 総和として0〜300の候補があるので、全探索
  ans[0][0] = A;
  ans[0][1] = B;
  ans[1][1] = C;
  for (int s = 0; s <= 300; s++) {
    ans[0][2] = s - (A + B);
    ans[2][1] = s - (B + C);
    ans[2][2] = s - (A + C);
    ans[1][2] = s - (ans[0][2] + ans[2][2]);
    ans[2][0] = s - (ans[0][2] + ans[1][1]);
    ans[1][0] = s - (ans[1][1] + ans[1][2]);

    if (check()) break;
  }

  // 解答
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      cout << ans[i][j];
      if (j < 2) cout << " ";
    }
    cout << endl;
  }

  return 0;
}

Submission Info

Submission Time
Task D - Magic Square 2
User university
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1807 Byte
Status AC
Exec Time 2 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 76
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All sample_01.txt, sample_02.txt, sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt, subtask1_33.txt, subtask1_34.txt, subtask1_35.txt, subtask1_36.txt, subtask1_37.txt, subtask1_38.txt, subtask1_39.txt, subtask1_40.txt, subtask1_41.txt, subtask1_42.txt, subtask1_43.txt, subtask1_44.txt, subtask1_45.txt, subtask1_46.txt, subtask1_47.txt, subtask1_48.txt, subtask1_49.txt, subtask1_50.txt, subtask1_51.txt, subtask1_52.txt, subtask1_53.txt, subtask1_54.txt, subtask1_55.txt, subtask1_56.txt, subtask1_57.txt, subtask1_58.txt, subtask1_59.txt, subtask1_60.txt, subtask1_61.txt, subtask1_62.txt, subtask1_63.txt, subtask1_64.txt, subtask1_65.txt, subtask1_66.txt, subtask1_67.txt, subtask1_68.txt, subtask1_69.txt, subtask1_70.txt, subtask1_71.txt, subtask1_72.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
subtask1_01.txt AC 1 ms 256 KB
subtask1_02.txt AC 1 ms 256 KB
subtask1_03.txt AC 1 ms 256 KB
subtask1_04.txt AC 1 ms 256 KB
subtask1_05.txt AC 1 ms 256 KB
subtask1_06.txt AC 1 ms 256 KB
subtask1_07.txt AC 1 ms 256 KB
subtask1_08.txt AC 1 ms 256 KB
subtask1_09.txt AC 1 ms 256 KB
subtask1_10.txt AC 1 ms 256 KB
subtask1_11.txt AC 1 ms 256 KB
subtask1_12.txt AC 1 ms 256 KB
subtask1_13.txt AC 1 ms 256 KB
subtask1_14.txt AC 1 ms 256 KB
subtask1_15.txt AC 1 ms 256 KB
subtask1_16.txt AC 1 ms 256 KB
subtask1_17.txt AC 1 ms 256 KB
subtask1_18.txt AC 1 ms 256 KB
subtask1_19.txt AC 1 ms 256 KB
subtask1_20.txt AC 1 ms 256 KB
subtask1_21.txt AC 1 ms 256 KB
subtask1_22.txt AC 1 ms 256 KB
subtask1_23.txt AC 1 ms 256 KB
subtask1_24.txt AC 2 ms 256 KB
subtask1_25.txt AC 1 ms 256 KB
subtask1_26.txt AC 1 ms 256 KB
subtask1_27.txt AC 1 ms 256 KB
subtask1_28.txt AC 1 ms 256 KB
subtask1_29.txt AC 1 ms 256 KB
subtask1_30.txt AC 1 ms 256 KB
subtask1_31.txt AC 1 ms 256 KB
subtask1_32.txt AC 1 ms 256 KB
subtask1_33.txt AC 1 ms 256 KB
subtask1_34.txt AC 1 ms 256 KB
subtask1_35.txt AC 1 ms 256 KB
subtask1_36.txt AC 1 ms 256 KB
subtask1_37.txt AC 1 ms 256 KB
subtask1_38.txt AC 1 ms 256 KB
subtask1_39.txt AC 1 ms 256 KB
subtask1_40.txt AC 1 ms 256 KB
subtask1_41.txt AC 1 ms 256 KB
subtask1_42.txt AC 1 ms 256 KB
subtask1_43.txt AC 1 ms 256 KB
subtask1_44.txt AC 1 ms 256 KB
subtask1_45.txt AC 1 ms 256 KB
subtask1_46.txt AC 1 ms 256 KB
subtask1_47.txt AC 1 ms 256 KB
subtask1_48.txt AC 1 ms 256 KB
subtask1_49.txt AC 1 ms 256 KB
subtask1_50.txt AC 1 ms 256 KB
subtask1_51.txt AC 1 ms 256 KB
subtask1_52.txt AC 1 ms 256 KB
subtask1_53.txt AC 1 ms 256 KB
subtask1_54.txt AC 1 ms 256 KB
subtask1_55.txt AC 1 ms 256 KB
subtask1_56.txt AC 1 ms 256 KB
subtask1_57.txt AC 1 ms 256 KB
subtask1_58.txt AC 1 ms 256 KB
subtask1_59.txt AC 1 ms 256 KB
subtask1_60.txt AC 1 ms 256 KB
subtask1_61.txt AC 1 ms 256 KB
subtask1_62.txt AC 1 ms 256 KB
subtask1_63.txt AC 1 ms 256 KB
subtask1_64.txt AC 1 ms 256 KB
subtask1_65.txt AC 1 ms 256 KB
subtask1_66.txt AC 1 ms 256 KB
subtask1_67.txt AC 1 ms 256 KB
subtask1_68.txt AC 1 ms 256 KB
subtask1_69.txt AC 1 ms 256 KB
subtask1_70.txt AC 1 ms 256 KB
subtask1_71.txt AC 1 ms 256 KB
subtask1_72.txt AC 1 ms 256 KB