10370 | 2024. 04. 01 14:58:37 | MagyarKendeSZLG | Táblajáték 2 (70 pont) | cpp17 | Elfogadva 70/70 | 3ms | 4256 KiB |
#include <bits/stdc++.h>
#define speed cin.tie(0); ios::sync_with_stdio(0)
#define cinv(v) for (auto& e : v) cin >> e;
#define all(v) v.begin(), v.end()
#define has(s, e) s.count(e)
using namespace std;
using ll = long long;
struct BigBase3 {
vector<int> v;
BigBase3() {
v.push_back(0);
}
void add() {
if (v.back() < 2) {
v.back()++;
} else {
int i;
for (i = size(v) - 1; i > -1; i--) {
if (v[i] < 2) {
v[i]++;
break;
} else {
v[i] = 0;
}
}
if (i == -1) {
v.insert(v.begin(), 1);
}
}
}
void sub() {
if (v.back() > 0) {
v.back()--;
} else {
int i;
for (i = size(v) - 1; i > -1; i--) {
if (v[i] > 0) {
v[i]--;
break;
} else {
v[i] = 2;
}
}
assert(i > -1);
}
}
void div3() {
v.pop_back();
if (v.empty()) {
v.push_back(0);
}
}
void mul3() {
v.push_back(0);
}
void print() const {
int i = 0;
// get rid of leading zeros
while (i < size(v) - 1 && !v[i]) i++;
for (; i < size(v); i++) {
cout << v[i];
}
}
};
int main() {
speed;
ll K, row = 0;
cin >> K;
BigBase3 col;
while (K--) {
char m;
cin >> m;
if (m == '0') {
row++;
col.mul3();
}
else if (m == '1') {
row++;
col.mul3();
col.add();
}
else if (m == '2') {
row++;
col.mul3();
col.add();
col.add();
}
else if (m == '3') {
row--;
col.div3();
}
else if (m == '4') {
col.sub();
}
else {
col.add();
}
}
cout << row << '\n';
col.print();
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 70/70 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1828 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 2056 KiB | |||
3 | Elfogadva | 2/2 | 3ms | 2280 KiB | |||
4 | Elfogadva | 3/3 | 3ms | 2368 KiB | |||
5 | Elfogadva | 3/3 | 3ms | 2504 KiB | |||
6 | Elfogadva | 3/3 | 3ms | 2692 KiB | |||
7 | Elfogadva | 3/3 | 3ms | 2912 KiB | |||
8 | Elfogadva | 3/3 | 3ms | 2996 KiB | |||
9 | Elfogadva | 3/3 | 3ms | 2996 KiB | |||
10 | Elfogadva | 3/3 | 3ms | 3132 KiB | |||
11 | Elfogadva | 3/3 | 3ms | 3236 KiB | |||
12 | Elfogadva | 3/3 | 3ms | 3364 KiB | |||
13 | Elfogadva | 3/3 | 2ms | 3452 KiB | |||
14 | Elfogadva | 3/3 | 2ms | 3456 KiB | |||
15 | Elfogadva | 4/4 | 2ms | 3460 KiB | |||
16 | Elfogadva | 4/4 | 3ms | 3460 KiB | |||
17 | Elfogadva | 4/4 | 3ms | 3584 KiB | |||
18 | Elfogadva | 4/4 | 3ms | 3812 KiB | |||
19 | Elfogadva | 4/4 | 3ms | 3880 KiB | |||
20 | Elfogadva | 4/4 | 3ms | 4256 KiB | |||
21 | Elfogadva | 4/4 | 3ms | 4132 KiB | |||
22 | Elfogadva | 4/4 | 3ms | 4204 KiB | |||
23 | Elfogadva | 3/3 | 3ms | 4108 KiB |