在线求救!!!*
我要死啦...
题目找不到错在哪里!!
代码如下:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Event {
int type;
int var1;
int var2;
int jump1;
int jump2;
};
int main() {
int n, m;
cin >> n >> m;
vector<int> vars(m);
vector<Event> events(n);
for (int i = 0; i < n; ++i) {
string type;
cin >> type;
if (type == "c") {
events[i].type = 1;
cin >> events[i].var1;
} else if (type == "v") {
events[i].type = 1;
cin >> events[i].var1;
vars[events[i].var1 - 1] = 0;
} else if (type == "+") {
events[i].type = 1;
cin >> events[i].var1;
cin >> events[i].jump1;
} else if (type == "-") {
events[i].type = 1;
cin >> events[i].var1;
cin >> events[i].jump1;
events[i].jump1 = -events[i].jump1;
} else if (type == "s") {
events[i].type = 2;
cin >> events[i].jump1;
cin >> events[i].jump2;
} else if (type == "i") {
events[i].type = 3;
string varType1, varType2;
cin >> varType1;
cin >> events[i].var1;
cin >> varType2;
cin >> events[i].var2;
cin >> events[i].jump1;
cin >> events[i].jump2;
}
}
int currEvent = 0;
int achievement = 0;
vector<int> choices;
while (currEvent < n) {
Event event = events[currEvent];
int type = event.type;
if (type == 1) {
int var = event.var1;
int change = event.jump1;
vars[var - 1] += change;
currEvent++;
} else if (type == 2) {
int choice;
cin >> choice;
choices.push_back(choice);
currEvent = (choice == 1 ? event.jump1 : event.jump2);
} else if (type == 3) {
int var1 = event.var1;
int var2 = event.var2;
int jump1 = event.jump1;
int jump2 = event.jump2;
if (vars[var1 - 1] < vars[var2 - 1]) {
currEvent = jump1;
} else {
currEvent = jump2;
}
}
achievement = max(achievement, vars[0]);
}
for (int choice : choices) {
cout << choice << endl;
}
return 0;
}