Advertisement
konchin_shih

a464 special judge

Nov 5th, 2020
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. #include<iostream>
  2. #include<vector>
  3. #include<fstream>
  4. #include<algorithm>
  5. using namespace std;
  6. int main(int argc, char* argv[]) {
  7.     fstream fin(argv[1], ios::in), user(argv[3], ios::in);
  8.     cin.rdbuf(fin.rdbuf());
  9.     vector<int> v(10000, 0);
  10.     int n, m, k, d, t = 0, tmp, x, y;
  11.     user >> x; if (~x) user >> y;
  12.     if (!~x) {
  13.         cin >> n >> m >> k;
  14.         for (int i = 1; i <= n; i++)
  15.             cin >> tmp, v[tmp - 1] = i;
  16.         if (v[k - 1]) goto WA;
  17.         for (t = 1; t <= m; t++) {
  18.             cin >> d;
  19.             if (d > 0)
  20.                 for (int i = 9999; i >= 0; i--)
  21.                     v[min(9999, i + d)] = v[i] ? : v[min(9999, i + d)];
  22.             if (d < 0)
  23.                 for (int i = 0; i <= 9999; i++)
  24.                     v[max(0, i + d)] = v[i] ? : v[max(0, i + d)];
  25.             if (v[k - 1]) goto WA;
  26.         }
  27.         goto AC;
  28.     } else {
  29.         cin >> n >> m >> k;
  30.         if (v[k - 1]) goto result;
  31.         for (int i = 1; i <= n; i++) {
  32.             cin >> tmp;
  33.             if (i == y) v[tmp - 1] = i;
  34.         }
  35.         for (t = 1; t <= m; t++) {
  36.             cin >> d;
  37.             if (d > 0)
  38.                 for (int i = 9999; i >= 0; i--)
  39.                     v[min(9999, i + d)] = v[i] ? : v[min(9999, i + d)];
  40.             if (d < 0)
  41.                 for (int i = 0; i <= 9999; i++)
  42.                     v[max(0, i + d)] = v[i] ? : v[max(0, i + d)];
  43.             if (v[k - 1]) goto result;
  44.         }
  45.         goto WA;
  46. result:
  47.         if (x == t && y == v[k - 1]) goto AC; else goto WA;
  48.     }
  49. AC:
  50.     cout << "$JUDGE_RESULT=AC" << endl;
  51.     return 0;
  52. WA:
  53.     cout << "$JUDGE_RESULT=WA" << endl
  54.          << "$USEROUT=" << x;
  55.     if (!~x) cout << ' ' << y;
  56.     cout << endl;
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement