Task: | Monistus |
Sender: | phesch |
Submission time: | 2023-11-01 12:21:50 +0200 |
Language: | C++ (C++20) |
Status: | READY |
Result: | 71 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 71 |
#2 | TIME LIMIT EXCEEDED | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.00 s | 1, 2 | details |
#2 | ACCEPTED | 0.00 s | 1, 2 | details |
#3 | ACCEPTED | 0.00 s | 1, 2 | details |
#4 | ACCEPTED | 0.00 s | 1, 2 | details |
#5 | ACCEPTED | 0.00 s | 1, 2 | details |
#6 | ACCEPTED | 0.00 s | 1, 2 | details |
#7 | ACCEPTED | 0.00 s | 1, 2 | details |
#8 | ACCEPTED | 0.07 s | 2 | details |
#9 | ACCEPTED | 0.20 s | 2 | details |
#10 | ACCEPTED | 0.20 s | 2 | details |
#11 | TIME LIMIT EXCEEDED | -- | 2 | details |
#12 | TIME LIMIT EXCEEDED | -- | 2 | details |
#13 | TIME LIMIT EXCEEDED | -- | 2 | details |
#14 | TIME LIMIT EXCEEDED | -- | 2 | details |
Code
#include <bits/stdc++.h> using namespace std; using ull = uint64_t; using sll = int64_t; static const ull inf = UINT64_MAX; static const sll infs = INT64_MAX; using vu = vector<ull>; using pu = pair<ull, ull>; string* next(list<string*>::iterator ent, ull index) { string* res = new string(); ull l = (**ent)[index] - '0'; res->reserve(l); ull cur = index + 1; ull i = 0; while (i < l) { //cout << l << " " << cur << " " << i << " " << (**ent) << " " << *res << endl; if (cur + (l - i) <= (*ent)->size()) { res->append(**ent, cur, (l - i)); i = l; } else { res->append(**ent, cur); i += (*ent)->size() - cur; ++ent; cur = 0; } //cout << "go" << endl; //if (cur >= (*ent)->size() - 1) //{ // ++ent; // cur = 0; //} //else //{ // ++cur; //} ////cout << "P" << (*ent)[cur] << endl; //res->push_back((**ent)[cur]); } //cout << *res << endl; //cout << "hey" << endl; return res; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); list<string*> rope; string* inp = new string(); getline(cin, *inp); rope.push_back(inp); string res; res.reserve(1000000); auto it = rope.begin(); ull index = 0; while (it != rope.end()) { char chr = (**it)[index]; if (chr < '0' || chr > '9') { //cout << chr; if (index >= (*it)->size() - 1) { res.append(**it); delete *it; ++it; rope.erase(prev(it)); index = 0; } else { ++index; } } else { //cout << "Current rope state:" << endl; //auto sit = rope.begin(); //while (sit != rope.end()) //{ // cout << *sit++ << endl; //} //cout << chr << endl; string* nxt = next(it, index); //cout << nxt << endl; if (index + 1 < (*it)->size()) { string* rest = new string((*it)->begin() + index + 1, (*it)->end()); rope.insert(next(it), rest); } rope.insert(next(it), nxt); res.append(**it, 0, index); delete *it; ++it; rope.erase(prev(it)); index = 0; //auto sit = rope.begin(); //while (sit != rope.end()) //{ // cout << *sit++; //} //cout << endl; } } //it = rope.begin(); //while (it != rope.end()) //{ // cout << *it++; //} cout << res; cout << endl; }
Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
input |
---|
987654321o987654321p |
correct output |
---|
oooooooooooooooooooooooooooooo... |
user output |
---|
oooooooooooooooooooooooooooooo... Truncated |
Test 2
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1e1o1zo1r1h1y1m1b1mn |
correct output |
---|
eeoozzorrhhyymmbbmmn |
user output |
---|
eeoozzorrhhyymmbbmmn |
Test 3
Group: 1, 2
Verdict: ACCEPTED
input |
---|
h4y21n7dz6vr1p4go1ec |
correct output |
---|
hynnnnynnnndzvrppdzvrppdzvrppg... |
user output |
---|
hynnnnynnnndzvrppdzvrppdzvrppg... |
Test 4
Group: 1, 2
Verdict: ACCEPTED
input |
---|
bv2olah1h6o4f2mx3z1k |
correct output |
---|
bvololahhhofmxmxfmxmxofmxmxfmx... |
user output |
---|
bvololahhhofmxmxfmxmxofmxmxfmx... |
Test 5
Group: 1, 2
Verdict: ACCEPTED
input |
---|
xewpp2f1l6a5jp1v2v1y |
correct output |
---|
xewppfffllajpvvajpvvajpvvjpjpv... |
user output |
---|
xewppfffllajpvvajpvvajpvvjpjpv... |
Test 6
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1v4z1kjm1t6vp5c1m2np |
correct output |
---|
vvzkkjzkkjmttvpcmmvpcmmvpcmmnc... |
user output |
---|
vvzkkjzkkjmttvpcmmvpcmmvpcmmnc... |
Test 7
Group: 1, 2
Verdict: ACCEPTED
input |
---|
y2bl9cp21v7kgesxm2uv |
correct output |
---|
yblblcpvvvvkgecpkkkkgecpvvvvkg... |
user output |
---|
yblblcpvvvvkgecpkkkkgecpvvvvkg... |
Test 8
Group: 2
Verdict: ACCEPTED
input |
---|
987654321b987654321f987654321u... |
correct output |
---|
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb... |
user output |
---|
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb... Truncated |
Test 9
Group: 2
Verdict: ACCEPTED
input |
---|
agjv4321w9dskvax5ws21r321l9n7d... |
correct output |
---|
agjvwwwwwwwwwwwwwwwwdskvaxwsds... |
user output |
---|
agjvwwwwwwwwwwwwwwwwdskvaxwsds... Truncated |
Test 10
Group: 2
Verdict: ACCEPTED
input |
---|
4mr1d71k432jt9sddyoy2oq7jvc1bm... |
correct output |
---|
mrddmrddkkjtjtjtjtjtjtjtjtkkjt... |
user output |
---|
mrddmrddkkjtjtjtjtjtjtjtjtkkjt... Truncated |
Test 11
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
1a1l1m1a1t1gc1yv1x1p1w1x1d1d1p... |
correct output |
---|
aallmmaattggcyyvxxppwwxxddddpp... |
user output |
---|
(empty) |
Test 12
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
321e321b321a321r321m321f321s32... |
correct output |
---|
eeeeeeeebbbbbbbbaaaaaaaarrrrrr... |
user output |
---|
(empty) |
Test 13
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
4321e4321l4321t4321w4321g4321c... |
correct output |
---|
eeeeeeeeeeeeeeeellllllllllllll... |
user output |
---|
(empty) |
Test 14
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
987654321u987654321p987654321g... |
correct output |
---|
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuu... |
user output |
---|
(empty) |