Submission #92411


Source Code Expand

Copy
#include <iostream>
#include <algorithm>
#include <numeric>
#include <vector>
#include <cassert>
#include <string>
#include <memory.h>
#include <queue>
#include <cstdio>
#include <cstdlib>
#include <set>
#include <map>
#include <cctype>
#include <iomanip>
#include <sstream>
#include <cctype>
#include <fstream>
#include <complex>
#include <cmath>
using namespace std;

#define REP2(i, m, n) for(int i = (int)(m); i < (int)(n); i++)
#define REP(i, n) REP2(i, 0, n)
#define ALL(c) (c).begin(), (c).end()
#define ITER(c) __typeof((c).begin())
#define PB(e) push_back(e)
#define FOREACH(i, c) for(ITER(c) i = (c).begin(); i != (c).end(); ++i)
#define MP(a, b) make_pair(a, b)
#define PARITY(n) ((n) & 1)

typedef long long ll;
typedef pair<ll, ll> P;
typedef complex<double> xy_t;
const int INF = 1000 * 1000 * 1000 + 7;
const double EPS = 1e-10;

ll size(const string &str, size_t &cur);
void expr(const string &str, size_t &cur, ll s, ll e);


ll number(const string &str, size_t &cur){
  ll res = 0;
  while(cur < str.size()&&isdigit(str[cur])) res = res * 10 + str[cur++] - '0';
  return res;
}

string String(const string &str, size_t &cur){
  ll l = cur;
  assert(isalpha(str[cur]));
  while(cur < str.size() && isalpha(str[cur])) cur++;
  return string(str.begin() + l, str.begin() + cur);
}

ll size_str(const string &str, size_t &cur){
  if(str[cur] == '('){
    cur++;
    ll len = size(str, cur);
    assert(str[cur++] == ')');
    return len * number(str, cur);
  }else{
    return String(str, cur).size();
  }
}

ll size(const string &str, size_t &cur){
  ll s = size_str(str, cur);
  while(cur < str.size() && str[cur] != ')'){
    s += size_str(str, cur);
  }
  return s;
}

ll size(const string &str){
  size_t cur = 0;
  return size(str, cur);
}

void exp_str(const string &str, size_t &cur, ll s, ll e){
  assert(s < e);
  
  if(str[cur] == '('){
    size_t old_cur = ++cur;
    ll len = size(str, cur);
    assert(str[cur++] == ')');
    ll tot_len = len * number(str, cur);
    ll start = s / len * len;

    while(start < e && start < tot_len){
      size_t tmp_cur = old_cur;
      // cout << s - start << " " << e - start << endl;
      expr(str, tmp_cur, max(0LL, s - start), max(0LL, e - start));
      start += len;
    }

  }else{
    string t = String(str, cur);
    ll len = t.size();
    assert(e <= len);
    cout << string(t.begin() + s, t.begin() + e);
  }
};

void expr(const string &str, size_t &cur, ll s, ll e){
  assert(s < e);
  
  size_t tmp_cur = cur;
  ll len = size_str(str, tmp_cur);
  // cout << str[cur] << " " << cur << " " << s << " " << e << endl;  
  // cout << len << " " << "POYO" << endl;

  if(s < len){
    exp_str(str, cur, s, min(len, e));
  }
  
  s = max(0LL, s - len);
  e = max(0LL, e - len);
  cur = tmp_cur;

  while(cur < str.size() && str[cur] != ')'){
    size_t tmp_cur = cur;
    ll len = size_str(str, tmp_cur);
    
    // cout << str.substr(cur) << " " << cur << " " << s << " " << e << endl;  
    // cout << len << " " << "FUGA" << endl;
    if(s < len) {
      exp_str(str, cur, s, min(len, e));
    }
    s = max(0LL, s - len);
    e = max(0LL, e - len);
    cur = tmp_cur;
  }
}
		
void solve(const string &str, ll s, ll e){
  size_t cur = 0;
  expr(str, cur, s, e);
}


int main(){
  ll B, L, N, M;
  string S;
  cin >> B >> L >> N >> S;
  M = size(S);
  if(B < 0) B = M+ B;
  solve(S, B, B + L);
  cout << endl;
  return 0;
}

Submission Info

Submission Time
Task D - 天下一展開
User flowlight
Language C++ (G++ 4.6.4)
Score 0
Code Size 3550 Byte
Status TLE
Exec Time 2032 ms
Memory 1604 KB

Judge Result

Set Name small medium large
Score / Max Score 0 / 50 0 / 50 0 / 30
Status
AC × 25
RE × 9
AC × 33
RE × 33
AC × 37
TLE × 10
RE × 42
Set Name Test Cases
small small, small/01_manual1, small/01_manual2, small/01_sample2, small/10_manual3, small/11_small00, small/11_small01, small/11_small02, small/11_small03, small/11_small04, small/11_small05, small/11_small06, small/11_small07, small/11_small08, small/11_small09, small/11_small10, small/11_small11, small/11_small12, small/11_small13, small/11_small14, small/11_small15, small/11_small16, small/11_small17, small/11_small18, small/11_small19, small/11_small20, small/11_small21, small/11_small22, small/11_small23, small/11_small24, small/11_small25, small/11_small26, small/11_small27, small/11_small28, small/11_small29
medium small, small/01_manual1, small/01_manual2, small/01_sample2, small/10_manual3, small/11_small00, small/11_small01, small/11_small02, small/11_small03, small/11_small04, small/11_small05, small/11_small06, small/11_small07, small/11_small08, small/11_small09, small/11_small10, small/11_small11, small/11_small12, small/11_small13, small/11_small14, small/11_small15, small/11_small16, small/11_small17, small/11_small18, small/11_small19, small/11_small20, small/11_small21, small/11_small22, small/11_small23, small/11_small24, small/11_small25, small/11_small26, small/11_small27, small/11_small28, small/11_small29, medium, medium/20_manual5, medium/20_manual6, medium/21_medium30, medium/21_medium31, medium/21_medium32, medium/21_medium33, medium/21_medium34, medium/21_medium35, medium/21_medium36, medium/21_medium37, medium/21_medium38, medium/21_medium39, medium/21_medium40, medium/21_medium41, medium/21_medium42, medium/21_medium43, medium/21_medium44, medium/21_medium45, medium/21_medium46, medium/21_medium47, medium/21_medium48, medium/21_medium49, medium/21_medium50, medium/21_medium51, medium/21_medium52, medium/21_medium53, medium/21_medium54, medium/21_medium55, medium/21_medium56, medium/21_medium57, medium/21_medium58, medium/21_medium59
large large, medium, small, large/30_manual4, large/30_manual7, large/31_large60, large/31_large61, large/31_large62, large/31_large63, large/31_large64, large/31_large65, large/31_large66, large/31_large67, large/31_large68, large/31_large69, large/32_large70, large/32_large71, large/32_large72, large/32_large73, large/32_large74, large/32_large75, large/32_large76, large/32_large77, large/32_large78, large/32_large79, large/33_large80, medium/20_manual5, medium/20_manual6, medium/21_medium30, medium/21_medium31, medium/21_medium32, medium/21_medium33, medium/21_medium34, medium/21_medium35, medium/21_medium36, medium/21_medium37, medium/21_medium38, medium/21_medium39, medium/21_medium40, medium/21_medium41, medium/21_medium42, medium/21_medium43, medium/21_medium44, medium/21_medium45, medium/21_medium46, medium/21_medium47, medium/21_medium48, medium/21_medium49, medium/21_medium50, medium/21_medium51, medium/21_medium52, medium/21_medium53, medium/21_medium54, medium/21_medium55, medium/21_medium56, medium/21_medium57, medium/21_medium58, medium/21_medium59, small/01_manual1, small/01_manual2, small/01_sample2, small/10_manual3, small/11_small00, small/11_small01, small/11_small02, small/11_small03, small/11_small04, small/11_small05, small/11_small06, small/11_small07, small/11_small08, small/11_small09, small/11_small10, small/11_small11, small/11_small12, small/11_small13, small/11_small14, small/11_small15, small/11_small16, small/11_small17, small/11_small18, small/11_small19, small/11_small20, small/11_small21, small/11_small22, small/11_small23, small/11_small24, small/11_small25, small/11_small26, small/11_small27, small/11_small28, small/11_small29
Case Name Status Exec Time Memory
large/30_manual4 AC 23 ms 768 KB
large/30_manual7 AC 107 ms 984 KB
large/31_large60 RE 275 ms 776 KB
large/31_large61 RE 270 ms 832 KB
large/31_large62 RE 258 ms 804 KB
large/31_large63 RE 249 ms 780 KB
large/31_large64 AC 35 ms 784 KB
large/31_large65 RE 282 ms 824 KB
large/31_large66 AC 25 ms 776 KB
large/31_large67 RE 242 ms 780 KB
large/31_large68 RE 255 ms 700 KB
large/31_large69 RE 257 ms 836 KB
large/32_large70 TLE 2029 ms 1208 KB
large/32_large71 TLE 2028 ms 1212 KB
large/32_large72 TLE 2031 ms 1212 KB
large/32_large73 TLE 2029 ms 1212 KB
large/32_large74 TLE 2029 ms 1592 KB
large/32_large75 TLE 2031 ms 1548 KB
large/32_large76 TLE 2029 ms 1480 KB
large/32_large77 TLE 2029 ms 1604 KB
large/32_large78 TLE 2032 ms 1488 KB
large/32_large79 TLE 2028 ms 1588 KB
large/33_large80 RE 295 ms 832 KB
medium/20_manual5 RE 251 ms 784 KB
medium/20_manual6 RE 244 ms 704 KB
medium/21_medium30 RE 250 ms 780 KB
medium/21_medium31 RE 235 ms 780 KB
medium/21_medium32 RE 235 ms 780 KB
medium/21_medium33 RE 237 ms 780 KB
medium/21_medium34 RE 234 ms 784 KB
medium/21_medium35 RE 241 ms 772 KB
medium/21_medium36 RE 247 ms 772 KB
medium/21_medium37 RE 234 ms 736 KB
medium/21_medium38 AC 20 ms 772 KB
medium/21_medium39 RE 244 ms 780 KB
medium/21_medium40 RE 232 ms 776 KB
medium/21_medium41 RE 242 ms 776 KB
medium/21_medium42 RE 246 ms 768 KB
medium/21_medium43 RE 232 ms 780 KB
medium/21_medium44 RE 239 ms 696 KB
medium/21_medium45 RE 248 ms 784 KB
medium/21_medium46 RE 241 ms 784 KB
medium/21_medium47 RE 240 ms 724 KB
medium/21_medium48 AC 21 ms 732 KB
medium/21_medium49 RE 247 ms 780 KB
medium/21_medium50 AC 21 ms 700 KB
medium/21_medium51 AC 20 ms 788 KB
medium/21_medium52 AC 21 ms 692 KB
medium/21_medium53 RE 243 ms 700 KB
medium/21_medium54 AC 21 ms 784 KB
medium/21_medium55 RE 257 ms 784 KB
medium/21_medium56 AC 24 ms 720 KB
medium/21_medium57 AC 21 ms 780 KB
medium/21_medium58 RE 250 ms 772 KB
medium/21_medium59 RE 246 ms 772 KB
small/01_manual1 AC 21 ms 776 KB
small/01_manual2 AC 21 ms 772 KB
small/01_sample2 AC 19 ms 776 KB
small/10_manual3 AC 20 ms 704 KB
small/11_small00 AC 21 ms 784 KB
small/11_small01 RE 238 ms 784 KB
small/11_small02 AC 21 ms 784 KB
small/11_small03 RE 232 ms 784 KB
small/11_small04 AC 20 ms 764 KB
small/11_small05 AC 19 ms 776 KB
small/11_small06 RE 245 ms 780 KB
small/11_small07 RE 241 ms 776 KB
small/11_small08 AC 24 ms 780 KB
small/11_small09 AC 23 ms 780 KB
small/11_small10 RE 245 ms 772 KB
small/11_small11 AC 21 ms 780 KB
small/11_small12 RE 236 ms 776 KB
small/11_small13 RE 236 ms 708 KB
small/11_small14 RE 257 ms 732 KB
small/11_small15 AC 20 ms 780 KB
small/11_small16 AC 20 ms 736 KB
small/11_small17 AC 21 ms 776 KB
small/11_small18 AC 21 ms 780 KB
small/11_small19 AC 20 ms 776 KB
small/11_small20 AC 19 ms 776 KB
small/11_small21 AC 19 ms 784 KB
small/11_small22 AC 21 ms 700 KB
small/11_small23 AC 21 ms 780 KB
small/11_small24 AC 20 ms 776 KB
small/11_small25 RE 232 ms 728 KB
small/11_small26 AC 21 ms 776 KB
small/11_small27 AC 21 ms 776 KB
small/11_small28 AC 21 ms 776 KB
small/11_small29 AC 21 ms 780 KB