1883 | 2022. 12. 06 23:53:53 | TomaSajt | Táblajáték | cpp17 | Elfogadva 50/50 | 3ms | 3704 KiB |
#include <bits/stdc++.h>
#define speed ios::sync_with_stdio(0);cin.tie(0)
using namespace std;
typedef bitset<501> num;
num neg1(0), pos1(1);
num mult2(const num& inp) {
num res;
for (int i = 0; i < 500; i++) {
res[i + 1] = inp[i];
}
return res;
}
num div2(const num& inp) {
num res;
for (int i = 0; i < 500; i++) {
res[i] = inp[i + 1];
}
return res;
}
num add(const num& a, const num& b) {
num res;
for (int i = 0, cry = 0; i <= 500; i++) {
int d = cry + a[i] + b[i];
res[i] = d % 2;
cry = (d / 2);
}
return res;
}
int main() {
speed;
for (int i = 0; i <= 500; i++) neg1[i] = 1;
num a;
int r = 0;
int n; cin >> n;
while (n--) {
int o; cin >> o;
if (o == 0) a = mult2(a), r++;
else if (o == 1) a = add(mult2(a), pos1), r++;
else if (o == 2) a = div2(a), r--;
else if (o == 3) a = add(a, neg1);
else if (o == 4) a = add(a, pos1);
}
cout << r << endl;
int i = 500;
for (; i >= 0 && !a[i]; i--);
if (i == -1) cout << 0;
for (; i >= 0; i--) cout << a[i];
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1892 KiB | |||
2 | Elfogadva | 0/0 | 2ms | 2116 KiB | |||
3 | Elfogadva | 3/3 | 2ms | 2316 KiB | |||
4 | Elfogadva | 3/3 | 2ms | 2552 KiB | |||
5 | Elfogadva | 3/3 | 2ms | 2724 KiB | |||
6 | Elfogadva | 3/3 | 2ms | 2948 KiB | |||
7 | Elfogadva | 3/3 | 2ms | 3032 KiB | |||
8 | Elfogadva | 3/3 | 2ms | 3028 KiB | |||
9 | Elfogadva | 3/3 | 2ms | 3264 KiB | |||
10 | Elfogadva | 3/3 | 3ms | 3340 KiB | |||
11 | Elfogadva | 3/3 | 2ms | 3444 KiB | |||
12 | Elfogadva | 3/3 | 3ms | 3680 KiB | |||
13 | Elfogadva | 4/4 | 2ms | 3544 KiB | |||
14 | Elfogadva | 4/4 | 3ms | 3540 KiB | |||
15 | Elfogadva | 4/4 | 2ms | 3500 KiB | |||
16 | Elfogadva | 4/4 | 3ms | 3628 KiB | |||
17 | Elfogadva | 4/4 | 2ms | 3704 KiB |