提出 #704540


ソースコード 拡げる

#include <bits/stdc++.h>

#define REP(i,n) for(int i=0;i<(int)(n);i++)
#define ALL(x) (x).begin(),(x).end()

using namespace std;

template <typename T> T &chmin(T &a, const T &b) { return a = min(a, b); }
template <typename T> T &chmax(T &a, const T &b) { return a = max(a, b); }

using ll = long long;
using ld = long double;

const int INF = 1e9;
const ld eps = 1e-10, pi = acos(-1.0);

string a, b;
int p, q;

int number(string &s, int &p) {
  int res = 0;
  while (p < (int)s.size() && isdigit(s[p])) {
    res = 10 * res + (s[p] - '0');
    ++p;
  }
  return res;
}

void parse(int la, int ra, int lb, int rb) {
  //cout << la << " " << ra << " " << lb << " " << rb << endl;
  if (ra - la <= 1 || rb - lb <= 1) return;
  int cnt = 0, pos1 = -1, pos2 = -1;
  for (int i = la; i < ra; ++i) {
    if (a[i] == '(') ++cnt;
    if (a[i] == ')') --cnt;
    if (cnt == 0 && a[i] == '[') pos1 = i;
  }
  cnt = 0;
  for (int i = lb; i < rb; ++i) {
    if (b[i] == '(') ++cnt;
    if (b[i] == ')') --cnt;
    if (cnt == 0 && b[i] == '[') pos2 = i;
  }
  cout << "(";
  parse(la+1, pos1-1, lb+1, pos2-1);
  cout << ")[";
  ++pos1; ++pos2;
  cout << number(a, pos1) + number(b, pos2);
  cout << "](";
  parse(pos1+2, ra-1, pos2+2, rb-1);
  cout << ")";
}

int main() {
  cin >> a >> b;
  p = q = 0;
  parse(0, (int)a.size(), 0, (int)b.size());
  cout << endl;
  return 0;
}

提出情報

提出日時
問題 C - みさわさんの根付き木
ユーザ choco_pafe
言語 C++14 (GCC 5.4.1)
得点 100
コード長 1427 Byte
結果 AC
実行時間 6 ms
メモリ 256 KiB

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 53
セット名 テストケース
All 0_sample_0, 0_sample_1, 0_sample_2, 0_sample_3, 0_sample_4, 10_random_00, 10_random_01, 10_random_02, 10_random_03, 10_random_04, 10_random_05, 10_random_06, 10_random_07, 10_random_08, 10_random_09, 10_random_10, 10_random_11, 10_random_12, 10_random_13, 10_random_14, 10_random_15, 10_random_16, 10_random_17, 10_random_18, 10_random_19, 10_random_20, 10_random_21, 10_random_22, 10_random_23, 10_random_24, 10_random_25, 10_random_26, 10_random_27, 10_random_28, 10_random_29, 10_random_30, 10_random_31, 10_random_32, 10_random_33, 10_random_34, 10_random_35, 10_random_36, 10_random_37, 10_random_38, 10_random_39, 20_unbalanced_0, 20_unbalanced_1, 20_unbalanced_2, 20_unbalanced_3, 21_small_unbalanced_0, 21_small_unbalanced_1, 21_small_unbalanced_2, 21_small_unbalanced_3
ケース名 結果 実行時間 メモリ
0_sample_0 AC 4 ms 256 KiB
0_sample_1 AC 4 ms 256 KiB
0_sample_2 AC 4 ms 256 KiB
0_sample_3 AC 4 ms 256 KiB
0_sample_4 AC 4 ms 256 KiB
10_random_00 AC 4 ms 256 KiB
10_random_01 AC 4 ms 256 KiB
10_random_02 AC 4 ms 256 KiB
10_random_03 AC 4 ms 256 KiB
10_random_04 AC 4 ms 256 KiB
10_random_05 AC 4 ms 256 KiB
10_random_06 AC 4 ms 256 KiB
10_random_07 AC 4 ms 256 KiB
10_random_08 AC 4 ms 256 KiB
10_random_09 AC 4 ms 256 KiB
10_random_10 AC 4 ms 256 KiB
10_random_11 AC 4 ms 256 KiB
10_random_12 AC 4 ms 256 KiB
10_random_13 AC 4 ms 256 KiB
10_random_14 AC 4 ms 256 KiB
10_random_15 AC 4 ms 256 KiB
10_random_16 AC 4 ms 256 KiB
10_random_17 AC 4 ms 256 KiB
10_random_18 AC 4 ms 256 KiB
10_random_19 AC 4 ms 256 KiB
10_random_20 AC 4 ms 256 KiB
10_random_21 AC 4 ms 256 KiB
10_random_22 AC 4 ms 256 KiB
10_random_23 AC 4 ms 256 KiB
10_random_24 AC 4 ms 256 KiB
10_random_25 AC 4 ms 256 KiB
10_random_26 AC 4 ms 256 KiB
10_random_27 AC 4 ms 256 KiB
10_random_28 AC 4 ms 256 KiB
10_random_29 AC 4 ms 256 KiB
10_random_30 AC 4 ms 256 KiB
10_random_31 AC 4 ms 256 KiB
10_random_32 AC 4 ms 256 KiB
10_random_33 AC 4 ms 256 KiB
10_random_34 AC 4 ms 256 KiB
10_random_35 AC 4 ms 256 KiB
10_random_36 AC 4 ms 256 KiB
10_random_37 AC 4 ms 256 KiB
10_random_38 AC 4 ms 256 KiB
10_random_39 AC 4 ms 256 KiB
20_unbalanced_0 AC 5 ms 256 KiB
20_unbalanced_1 AC 4 ms 256 KiB
20_unbalanced_2 AC 4 ms 256 KiB
20_unbalanced_3 AC 6 ms 256 KiB
21_small_unbalanced_0 AC 4 ms 256 KiB
21_small_unbalanced_1 AC 4 ms 256 KiB
21_small_unbalanced_2 AC 4 ms 256 KiB
21_small_unbalanced_3 AC 5 ms 256 KiB