Submission #2337426


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
#define int long long
void Output(vector< pair< char, int > >& B)
{
  int tal = B.size() - 2;
  for(int i = B.size() - 1; i > 0; i--) {
    tal = min(tal, i - 1);
    while(tal > 0 && B[tal].second == 0) --tal;
    if(B[i].first == B[tal].first) {
      B[tal].second += B[i].second;
      B[i].second = 0;
    }
  }
  for(int i = 0; i < B.size(); i++) {
    if(B[i].second > 0) {
      cout << B[i].first << " " << B[i].second << " ";
    }
  }
  cout << "$" << endl; 
  exit(0);
}
 
 
   
signed main()
{
  vector< pair< char, int > > A[3];
  vector< pair< char, int > > B;
   
  for(int i = 0; i < 3; i++) {
    char C;
    while(cin >> C, C != '$') {
      int D;
      cin >> D;
      A[i].emplace_back(C, D);
    }
  }
   
  if(A[1].size() == 1) {
    for(int i = 0; i < A[0].size(); i++) {
      if(A[0][i].first == A[1][0].first && A[0][i].second >= A[1][0].second) {
        for(int j = 0; j < i; j++) {
          B.emplace_back(A[0][j].first, A[0][j].second);
        }
        for(int j = 0; j < A[2].size(); j++) {
          B.emplace_back(A[2][j].first, A[2][j].second);
        }
        if(A[0][i].second != A[1][0].second) {
          B.emplace_back(A[0][i].first, A[0][i].second - A[1][0].second);
        }
        for(int j = i + 1; j < A[0].size(); j++) {
          B.emplace_back(A[0][j].first, A[0][j].second);
        }
        Output(B);
      }
    }
  } else {
    for(int i = 0; i <= (int)A[0].size() - (int)A[1].size(); i++) {
      if(A[0][i].first == A[1][0].first && A[0][i].second >= A[1][0].second && A[0][i + A[1].size() - 1].first == A[1].back().first && A[0][i + A[1].size() - 1].second >= A[1].back().second) {
        bool flag = true;
        for(int j = 1; j < A[1].size() - 1; j++) {
          flag &= A[0][i + j] == A[1][j];
        }
        if(!flag) continue;
        for(int j = 0; j < i; j++) {
          B.emplace_back(A[0][j].first, A[0][j].second);
        }
        if(A[0][i].second != A[1][0].second) {
          B.emplace_back(A[0][i].first, A[0][i].second - A[1][0].second);
        }
        for(int j = 0; j < A[2].size(); j++) {
          B.emplace_back(A[2][j].first, A[2][j].second);
        }
        if(A[0][i + A[1].size() - 1].second != A[1].back().second) {
          B.emplace_back(A[0][i + A[1].size() - 1].first, A[0][i + A[1].size() - 1].second - A[1].back().second);
        }
        for(int j = i + A[1].size(); j < A[0].size(); j++) {
          B.emplace_back(A[0][j].first, A[0][j].second);
        }
        Output(B);
      }
    }
  }
  for(int i = 0; i < A[0].size(); i++) {
    B.emplace_back(A[0][i].first, A[0][i].second);
  }
  Output(B);
}

Submission Info

Submission Time
Task H - RLE Replacement
User ei13333
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2755 Byte
Status AC
Exec Time 3 ms
Memory 384 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 114
Set Name Test Cases
All 00_sample_00, 00_sample_01, 01_rnd_00, 01_rnd_01, 01_rnd_02, 01_rnd_03, 01_rnd_04, 01_rnd_05, 01_rnd_06, 01_rnd_07, 01_rnd_08, 01_rnd_09, 01_rnd_10, 01_rnd_11, 01_rnd_12, 01_rnd_13, 01_rnd_14, 01_rnd_15, 01_rnd_16, 01_rnd_17, 01_rnd_18, 01_rnd_19, 01_rnd_20, 01_rnd_21, 01_rnd_22, 01_rnd_23, 01_rnd_24, 01_rnd_25, 01_rnd_26, 01_rnd_27, 01_rnd_28, 01_rnd_29, 02_small_00, 02_small_01, 02_small_02, 02_small_03, 02_small_04, 02_small_05, 02_small_06, 02_small_07, 02_small_08, 02_small_09, 02_small_10, 02_small_11, 02_small_12, 02_small_13, 02_small_14, 02_small_15, 02_small_16, 02_small_17, 02_small_18, 02_small_19, 02_small_20, 02_small_21, 02_small_22, 02_small_23, 02_small_24, 02_small_25, 02_small_26, 02_small_27, 02_small_28, 02_small_29, 02_small_30, 02_small_31, 02_small_32, 02_small_33, 02_small_34, 02_small_35, 02_small_36, 02_small_37, 02_small_38, 02_small_39, 02_small_40, 02_small_41, 02_small_42, 02_small_43, 02_small_44, 02_small_45, 02_small_46, 02_small_47, 02_small_48, 02_small_49, 03_resultmax_00, 03_resultmax_01, 03_resultmax_02, 03_resultmax_03, 03_resultmax_04, 03_resultmax_05, 03_resultmax_06, 03_resultmax_07, 03_resultmax_08, 03_resultmax_09, 03_resultmax_10, 03_resultmax_11, 03_resultmax_12, 03_resultmax_13, 03_resultmax_14, 03_resultmax_15, 03_resultmax_16, 03_resultmax_17, 03_resultmax_18, 03_resultmax_19, 90_teuchi_00, 90_teuchi_01, 90_teuchi_02, 90_teuchi_03, 90_teuchi_04, 90_teuchi_05, 90_teuchi_06, 90_teuchi_07, 90_teuchi_08, 90_teuchi_09, 90_teuchi_10, 90_teuchi_11
Case Name Status Exec Time Memory
00_sample_00 AC 1 ms 256 KB
00_sample_01 AC 1 ms 256 KB
01_rnd_00 AC 2 ms 384 KB
01_rnd_01 AC 3 ms 384 KB
01_rnd_02 AC 2 ms 256 KB
01_rnd_03 AC 2 ms 384 KB
01_rnd_04 AC 2 ms 256 KB
01_rnd_05 AC 2 ms 256 KB
01_rnd_06 AC 2 ms 384 KB
01_rnd_07 AC 2 ms 256 KB
01_rnd_08 AC 2 ms 256 KB
01_rnd_09 AC 2 ms 384 KB
01_rnd_10 AC 2 ms 256 KB
01_rnd_11 AC 2 ms 256 KB
01_rnd_12 AC 1 ms 256 KB
01_rnd_13 AC 2 ms 384 KB
01_rnd_14 AC 2 ms 256 KB
01_rnd_15 AC 3 ms 384 KB
01_rnd_16 AC 3 ms 384 KB
01_rnd_17 AC 3 ms 384 KB
01_rnd_18 AC 3 ms 384 KB
01_rnd_19 AC 2 ms 384 KB
01_rnd_20 AC 2 ms 384 KB
01_rnd_21 AC 2 ms 384 KB
01_rnd_22 AC 2 ms 384 KB
01_rnd_23 AC 2 ms 384 KB
01_rnd_24 AC 2 ms 384 KB
01_rnd_25 AC 3 ms 384 KB
01_rnd_26 AC 3 ms 384 KB
01_rnd_27 AC 3 ms 384 KB
01_rnd_28 AC 3 ms 384 KB
01_rnd_29 AC 2 ms 384 KB
02_small_00 AC 2 ms 256 KB
02_small_01 AC 1 ms 256 KB
02_small_02 AC 1 ms 256 KB
02_small_03 AC 2 ms 256 KB
02_small_04 AC 1 ms 256 KB
02_small_05 AC 1 ms 256 KB
02_small_06 AC 1 ms 256 KB
02_small_07 AC 1 ms 256 KB
02_small_08 AC 2 ms 256 KB
02_small_09 AC 1 ms 256 KB
02_small_10 AC 1 ms 256 KB
02_small_11 AC 2 ms 384 KB
02_small_12 AC 2 ms 384 KB
02_small_13 AC 1 ms 256 KB
02_small_14 AC 2 ms 384 KB
02_small_15 AC 1 ms 256 KB
02_small_16 AC 1 ms 256 KB
02_small_17 AC 2 ms 384 KB
02_small_18 AC 2 ms 256 KB
02_small_19 AC 2 ms 384 KB
02_small_20 AC 2 ms 384 KB
02_small_21 AC 1 ms 256 KB
02_small_22 AC 2 ms 256 KB
02_small_23 AC 2 ms 256 KB
02_small_24 AC 2 ms 256 KB
02_small_25 AC 1 ms 256 KB
02_small_26 AC 1 ms 256 KB
02_small_27 AC 2 ms 384 KB
02_small_28 AC 2 ms 256 KB
02_small_29 AC 2 ms 384 KB
02_small_30 AC 2 ms 256 KB
02_small_31 AC 2 ms 256 KB
02_small_32 AC 1 ms 256 KB
02_small_33 AC 2 ms 384 KB
02_small_34 AC 1 ms 256 KB
02_small_35 AC 1 ms 256 KB
02_small_36 AC 1 ms 256 KB
02_small_37 AC 1 ms 256 KB
02_small_38 AC 2 ms 384 KB
02_small_39 AC 2 ms 256 KB
02_small_40 AC 2 ms 256 KB
02_small_41 AC 2 ms 256 KB
02_small_42 AC 2 ms 384 KB
02_small_43 AC 2 ms 256 KB
02_small_44 AC 2 ms 256 KB
02_small_45 AC 1 ms 256 KB
02_small_46 AC 1 ms 256 KB
02_small_47 AC 1 ms 256 KB
02_small_48 AC 2 ms 384 KB
02_small_49 AC 2 ms 384 KB
03_resultmax_00 AC 2 ms 384 KB
03_resultmax_01 AC 2 ms 384 KB
03_resultmax_02 AC 2 ms 384 KB
03_resultmax_03 AC 2 ms 384 KB
03_resultmax_04 AC 2 ms 384 KB
03_resultmax_05 AC 2 ms 384 KB
03_resultmax_06 AC 2 ms 384 KB
03_resultmax_07 AC 2 ms 384 KB
03_resultmax_08 AC 2 ms 384 KB
03_resultmax_09 AC 2 ms 384 KB
03_resultmax_10 AC 2 ms 384 KB
03_resultmax_11 AC 2 ms 384 KB
03_resultmax_12 AC 2 ms 384 KB
03_resultmax_13 AC 2 ms 384 KB
03_resultmax_14 AC 2 ms 384 KB
03_resultmax_15 AC 2 ms 384 KB
03_resultmax_16 AC 2 ms 384 KB
03_resultmax_17 AC 2 ms 256 KB
03_resultmax_18 AC 2 ms 384 KB
03_resultmax_19 AC 2 ms 384 KB
90_teuchi_00 AC 1 ms 256 KB
90_teuchi_01 AC 1 ms 256 KB
90_teuchi_02 AC 1 ms 256 KB
90_teuchi_03 AC 1 ms 256 KB
90_teuchi_04 AC 1 ms 256 KB
90_teuchi_05 AC 1 ms 256 KB
90_teuchi_06 AC 1 ms 256 KB
90_teuchi_07 AC 2 ms 256 KB
90_teuchi_08 AC 2 ms 256 KB
90_teuchi_09 AC 2 ms 256 KB
90_teuchi_10 AC 1 ms 256 KB
90_teuchi_11 AC 1 ms 256 KB