QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#165459#7104. Halting ProblemOnly_y#TL 0ms3604kbC++201.5kb2023-09-05 18:25:262023-09-05 18:25:27

Judging History

你现在查看的是最新测评结果

  • [2023-09-05 18:25:27]
  • 评测
  • 测评结果:TL
  • 用时:0ms
  • 内存:3604kb
  • [2023-09-05 18:25:26]
  • 提交

answer

#include <bits/stdc++.h>

void solve() {
  int n;
  std::cin >> n;
  std::vector<std::pair<int, std::pair<int, int>>> a(n + 1);
  std::string s;
  int v;
  for (int i = 1; i <= n; ++i) {
    std::cin >> s >> v;
    if (s[0] == 'a') a[i].first = 1, a[i].second.first = v;
    else {
      int k;
      std::cin >> k;
      if (s[1] == 'e') a[i].first = 2, a[i].second = {v, k};
      if (s[1] == 'n') a[i].first = 3, a[i].second = {v, k};
      if (s[1] == 'l') a[i].first = 4, a[i].second = {v, k};
      if (s[1] == 'g') a[i].first = 5, a[i].second = {v, k};
    }
  }
  int r = 0;
  std::map<std::pair<int, int>, bool> mp;
  for (int i = 1; i <= n;) {
    if (mp[{i, r}]) {
      std::cout << "No\n";
      return;
    }
    mp[{i, r}] = true;
    if (a[i].first == 1) {
      r = (r + a[i].second.first) % 256;
      i ++;
    } else if (a[i].first == 2) {
      if (r == a[i].second.first) i = a[i].second.second;
      else i = i + 1;
    } else if (a[i].first == 3) {
      if (r == a[i].second.first) i = i + 1;
      else i = a[i].second.second;
    } else if (a[i].first == 4) {
      if (r < a[i].second.first) i = a[i].second.second;
      else i = i + 1;
    } else if (a[i].first == 5) {
      if (r > a[i].second.first) i = a[i].second.second;
      else i = i + 1;
    }
  }
  std::cout << "Yes\n";
}

signed main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(0);
  int _(1);
  std::cin >> _;
  while (_ --) solve();
  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3604kb

input:

4
2
add 1
blt 5 1
3
add 252
add 1
bgt 252 2
2
add 2
bne 7 1
3
add 1
bne 252 1
beq 252 1

output:

Yes
Yes
No
No

result:

ok 4 lines

Test #2:

score: -100
Time Limit Exceeded

input:

1117
8
bgt 51 8
add 75
add 115
bne 40 3
beq 213 6
bgt 210 4
blt 228 7
bgt 60 2
6
bne 130 3
add 33
bne 74 4
blt 73 6
blt 63 5
bne 138 2
6
beq 131 2
bgt 90 3
add 127
bgt 195 1
blt 244 6
bne 20 3
3
add 53
bne 122 1
blt 251 2
9
add 102
add 161
bne 26 2
blt 5 8
beq 76 3
add 119
bgt 196 3
bne 239 8
blt 15...

output:


result: