Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define MAX 200005
- using namespace std;
- int t, n, a, b;
- char c;
- int thes[MAX];
- int costfrom(int x, int layer) {
- if (thes[x] == 0) {
- int continuar = layer * b + a + costfrom(x+1, layer);
- int descer = layer == 2 ? costfrom(x+1, layer-1) : -1;
- int subir = layer == 1 ? cosfrom(x+1, layer+1) : -1;
- return max(max(continuar, descer), subir);
- }
- }
- int main() {
- cin >> t;
- for (int i = 1; i <= t; i++) {
- cin >> n >> a >> b;
- for (int j = 1; j <= n; j++) {
- cin >> c; thes[j] = c - '0';
- }
- cout << b + costfrom(0, 1) << "\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement