Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<vector>
- #include<fstream>
- #include<algorithm>
- using namespace std;
- int main(int argc, char* argv[]) {
- fstream fin(argv[1], ios::in), user(argv[3], ios::in);
- cin.rdbuf(fin.rdbuf());
- vector<int> v(10000, 0);
- int n, m, k, d, t = 0, tmp, x, y;
- user >> x; if (~x) user >> y;
- if (!~x) {
- cin >> n >> m >> k;
- for (int i = 1; i <= n; i++)
- cin >> tmp, v[tmp - 1] = i;
- if (v[k - 1]) goto WA;
- for (t = 1; t <= m; t++) {
- cin >> d;
- if (d > 0)
- for (int i = 9999; i >= 0; i--)
- v[min(9999, i + d)] = v[i] ? : v[min(9999, i + d)];
- if (d < 0)
- for (int i = 0; i <= 9999; i++)
- v[max(0, i + d)] = v[i] ? : v[max(0, i + d)];
- if (v[k - 1]) goto WA;
- }
- goto AC;
- } else {
- cin >> n >> m >> k;
- if (v[k - 1]) goto result;
- for (int i = 1; i <= n; i++) {
- cin >> tmp;
- if (i == y) v[tmp - 1] = i;
- }
- for (t = 1; t <= m; t++) {
- cin >> d;
- if (d > 0)
- for (int i = 9999; i >= 0; i--)
- v[min(9999, i + d)] = v[i] ? : v[min(9999, i + d)];
- if (d < 0)
- for (int i = 0; i <= 9999; i++)
- v[max(0, i + d)] = v[i] ? : v[max(0, i + d)];
- if (v[k - 1]) goto result;
- }
- goto WA;
- result:
- if (x == t && y == v[k - 1]) goto AC; else goto WA;
- }
- AC:
- cout << "$JUDGE_RESULT=AC" << endl;
- return 0;
- WA:
- cout << "$JUDGE_RESULT=WA" << endl
- << "$USEROUT=" << x;
- if (!~x) cout << ' ' << y;
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement