Submission #93011
Source Code Expand
Copy
#include <iostream> #include <cassert> #include <string> #include <cctype> using namespace std; typedef long long ll; 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] == '('){ 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){ if(s >= e) return; 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; ll tmp_s = max(0LL, s - start); ll tmp_e = max(0LL, e - start); expr(str, tmp_cur, tmp_s, tmp_e); 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){ if(s >= e) return; size_t len_cur = cur; ll len = size_str(str, len_cur); if(s < len) exp_str(str, cur, s, min(len, e)); cur = len_cur; s = max(0LL, s - len); e = max(0LL, e - len); while(cur < str.size() && str[cur] != ')'){ ll len = size_str(str, len_cur); if(s < len) exp_str(str, cur, s, min(len, e)); s = max(0LL, s - len); e = max(0LL, e - len); cur = len_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; assert(N <= 100); 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 | 100 |
Code Size | 2519 Byte |
Status | TLE |
Exec Time | 2034 ms |
Memory | 1604 KB |
Judge Result
Set Name | small | medium | large | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 50 / 50 | 50 / 50 | 0 / 30 | ||||||||
Status |
|
|
|
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 | 25 ms | 700 KB |
large/30_manual7 | AC | 109 ms | 1080 KB |
large/31_large60 | AC | 24 ms | 788 KB |
large/31_large61 | AC | 57 ms | 824 KB |
large/31_large62 | AC | 34 ms | 832 KB |
large/31_large63 | AC | 32 ms | 784 KB |
large/31_large64 | AC | 38 ms | 828 KB |
large/31_large65 | AC | 50 ms | 932 KB |
large/31_large66 | AC | 29 ms | 780 KB |
large/31_large67 | AC | 23 ms | 784 KB |
large/31_large68 | AC | 27 ms | 780 KB |
large/31_large69 | AC | 40 ms | 816 KB |
large/32_large70 | TLE | 2033 ms | 1184 KB |
large/32_large71 | TLE | 2030 ms | 1264 KB |
large/32_large72 | TLE | 2033 ms | 1224 KB |
large/32_large73 | TLE | 2033 ms | 1216 KB |
large/32_large74 | TLE | 2033 ms | 1480 KB |
large/32_large75 | TLE | 2031 ms | 1592 KB |
large/32_large76 | TLE | 2030 ms | 1488 KB |
large/32_large77 | TLE | 2033 ms | 1488 KB |
large/32_large78 | TLE | 2031 ms | 1604 KB |
large/32_large79 | TLE | 2034 ms | 1476 KB |
large/33_large80 | AC | 75 ms | 844 KB |
medium/20_manual5 | AC | 24 ms | 784 KB |
medium/20_manual6 | AC | 22 ms | 732 KB |
medium/21_medium30 | AC | 19 ms | 780 KB |
medium/21_medium31 | AC | 24 ms | 720 KB |
medium/21_medium32 | AC | 24 ms | 784 KB |
medium/21_medium33 | AC | 23 ms | 780 KB |
medium/21_medium34 | AC | 27 ms | 776 KB |
medium/21_medium35 | AC | 21 ms | 768 KB |
medium/21_medium36 | AC | 25 ms | 784 KB |
medium/21_medium37 | AC | 25 ms | 736 KB |
medium/21_medium38 | AC | 26 ms | 776 KB |
medium/21_medium39 | AC | 23 ms | 784 KB |
medium/21_medium40 | AC | 22 ms | 788 KB |
medium/21_medium41 | AC | 24 ms | 784 KB |
medium/21_medium42 | AC | 21 ms | 696 KB |
medium/21_medium43 | AC | 24 ms | 768 KB |
medium/21_medium44 | AC | 23 ms | 780 KB |
medium/21_medium45 | AC | 24 ms | 780 KB |
medium/21_medium46 | AC | 22 ms | 692 KB |
medium/21_medium47 | AC | 22 ms | 780 KB |
medium/21_medium48 | AC | 22 ms | 820 KB |
medium/21_medium49 | AC | 24 ms | 780 KB |
medium/21_medium50 | AC | 21 ms | 764 KB |
medium/21_medium51 | AC | 25 ms | 696 KB |
medium/21_medium52 | AC | 22 ms | 784 KB |
medium/21_medium53 | AC | 23 ms | 784 KB |
medium/21_medium54 | AC | 22 ms | 776 KB |
medium/21_medium55 | AC | 22 ms | 780 KB |
medium/21_medium56 | AC | 24 ms | 780 KB |
medium/21_medium57 | AC | 23 ms | 784 KB |
medium/21_medium58 | AC | 23 ms | 776 KB |
medium/21_medium59 | AC | 24 ms | 708 KB |
small/01_manual1 | AC | 22 ms | 732 KB |
small/01_manual2 | AC | 20 ms | 772 KB |
small/01_sample2 | AC | 21 ms | 784 KB |
small/10_manual3 | AC | 23 ms | 800 KB |
small/11_small00 | AC | 23 ms | 612 KB |
small/11_small01 | AC | 22 ms | 784 KB |
small/11_small02 | AC | 20 ms | 780 KB |
small/11_small03 | AC | 25 ms | 792 KB |
small/11_small04 | AC | 22 ms | 780 KB |
small/11_small05 | AC | 24 ms | 780 KB |
small/11_small06 | AC | 21 ms | 784 KB |
small/11_small07 | AC | 23 ms | 780 KB |
small/11_small08 | AC | 24 ms | 728 KB |
small/11_small09 | AC | 23 ms | 692 KB |
small/11_small10 | AC | 23 ms | 784 KB |
small/11_small11 | AC | 21 ms | 772 KB |
small/11_small12 | AC | 22 ms | 700 KB |
small/11_small13 | AC | 22 ms | 772 KB |
small/11_small14 | AC | 22 ms | 772 KB |
small/11_small15 | AC | 23 ms | 780 KB |
small/11_small16 | AC | 28 ms | 700 KB |
small/11_small17 | AC | 25 ms | 784 KB |
small/11_small18 | AC | 23 ms | 784 KB |
small/11_small19 | AC | 26 ms | 724 KB |
small/11_small20 | AC | 23 ms | 776 KB |
small/11_small21 | AC | 24 ms | 820 KB |
small/11_small22 | AC | 26 ms | 720 KB |
small/11_small23 | AC | 21 ms | 784 KB |
small/11_small24 | AC | 24 ms | 784 KB |
small/11_small25 | AC | 24 ms | 784 KB |
small/11_small26 | AC | 21 ms | 776 KB |
small/11_small27 | AC | 22 ms | 724 KB |
small/11_small28 | AC | 21 ms | 772 KB |
small/11_small29 | AC | 23 ms | 784 KB |