| Task: | Monistus |
| Sender: | phesch |
| Submission time: | 2023-11-01 11:24:03 +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.06 s | 2 | details |
| #9 | ACCEPTED | 0.19 s | 2 | details |
| #10 | ACCEPTED | 0.19 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;
ull l = (*ent)[index] - '0';
res.reserve(l);
ull cur = index;
for (ull i = 0; i < l; ++i)
{
//cout << "go" << endl;
if (cur >= ent->size() - 1)
{
++ent;
cur = 0;
}
else
{
++cur;
}
//cout << "P" << (*ent)[cur] << endl;
res.push_back((*ent)[cur]);
}
//cout << "hey" << endl;
return res;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
list<string> rope;
getline(cin, rope.emplace_back());
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);
++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())
{
rope.insert(next(it), {it->begin() + index + 1, it->end()});
}
rope.insert(next(it), nxt);
res.append(*it, 0, index);
++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) |
