QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#709505#9535. Arrow a Rowhos_lyricAC ✓25ms4424kbC++142.4kb2024-11-04 15:06:162024-11-04 15:06:17

Judging History

This is the latest submission verdict.

  • [2024-11-04 15:06:17]
  • Judged
  • Verdict: AC
  • Time: 25ms
  • Memory: 4424kb
  • [2024-11-04 15:06:16]
  • Submitted

answer

#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <sstream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>

using namespace std;

using Int = long long;

template <class T1, class T2> ostream &operator<<(ostream &os, const pair<T1, T2> &a) { return os << "(" << a.first << ", " << a.second << ")"; };
template <class T> ostream &operator<<(ostream &os, const vector<T> &as) { const int sz = as.size(); os << "["; for (int i = 0; i < sz; ++i) { if (i >= 256) { os << ", ..."; break; } if (i > 0) { os << ", "; } os << as[i]; } return os << "]"; }
template <class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cerr << *i << " "; cerr << endl; }
template <class T> bool chmin(T &t, const T &f) { if (t > f) { t = f; return true; } return false; }
template <class T> bool chmax(T &t, const T &f) { if (t < f) { t = f; return true; } return false; }
#define COLOR(s) ("\x1b[" s "m")


int N;
char S[100'010];

int main() {
  for (int numCases; ~scanf("%d", &numCases); ) { for (int caseId = 1; caseId <= numCases; ++caseId) {
    scanf("%s", S);
    N = strlen(S);
    
    vector<pair<int, int>> ps;
    for (int i = 0, j = 0; i < N; i = j) {
      for (j = i; j < N && S[i] == S[j]; ++j) {}
      if (S[i] == '-') {
        ps.emplace_back(i, j);
      }
    }
    
    bool ok = true;
    ok = ok && (S[0] == '>');
    for (int i = N - 3; i < N; ++i) ok = ok && (S[i] == '>');
    ok = ok && ps.size();
    
    if (ok) {
      vector<int> used(N, 0);
      for (const auto &p : ps) {
        used[p.first - 1] = 1;
      }
      printf("Yes %d\n", N - 4);
      for (int i = N - 4; --i > ps[0].first - 1; ) if (!used[i]) {
        printf("%d %d\n", i + 1, 5);
      }
      for (int i = 0; i <= ps[0].first - 1; ++i) if (!used[i]) {
        printf("%d %d\n", i + 1, 5);
      }
      for (const auto &p : ps) {
        const int l = p.first - 1;
        const int r = p.second + 3;
        printf("%d %d\n", l + 1, r - l);
      }
    } else {
      puts("No");
    }
  }
#ifndef LOCAL
  break;
#endif
  }
  return 0;
}

详细

Test #1:

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

input:

4
>>->>>
>>>->
>>>>>
>->>>>>>

output:

Yes 2
1 5
2 5
No
No
Yes 4
4 5
3 5
2 5
1 5

result:

ok ok (4 test cases)

Test #2:

score: 0
Accepted
time: 0ms
memory: 3792kb

input:

126
>->-->>>>
>--->->>>>
>--->-->>>
>>-->->>>
>>-->>>>>
>>->->>>>
>>->>->>>>
>-->->->>>
>->->>>>>>
>->>>
>->->>>>>
>>>->->>>
>>->>>>>>>
>>>>>->>>
>->>>->>>
>>--->->>>
>>->>>>
>->>>>->>>
>>>>-->>>
>---->>>
>>>---->>>
>>>>->>>>
>->>-->>>
>-->-->>>>
>>---->>>
>>--->>>
>->>>-->>>
>>-->>>>
>>---->>>>
>>-...

output:

Yes 5
5 5
4 5
2 5
1 5
3 6
Yes 6
6 5
4 5
3 5
2 5
1 7
5 5
Yes 6
6 5
4 5
3 5
2 5
1 7
5 6
Yes 5
4 5
3 5
1 5
2 6
5 5
Yes 5
5 5
4 5
3 5
1 5
2 6
Yes 5
5 5
3 5
1 5
2 5
4 5
Yes 6
6 5
4 5
3 5
1 5
2 5
5 5
Yes 6
5 5
3 5
2 5
1 6
4 5
6 5
Yes 6
6 5
5 5
4 5
2 5
1 5
3 5
Yes 1
1 5
Yes 5
5 5
4 5
2 5
1 5
3 5
Yes 5
4 5
...

result:

ok ok (126 test cases)

Test #3:

score: 0
Accepted
time: 4ms
memory: 4084kb

input:

4032
>>--->>>>>>>>
>->>->->-->->>>
>>--->>--->>>
>>->->->>>>>>>>
>->---->->>>
>->>->>---->>>>
>>>>>>>>->>>>
>->>>--->>>->>>
>->>->>-->>>>>>
>->>-->---->>>
>-->--->>>->>>
>->---->>-->>>>
>>------>>>
>>>-->>--->>>>>
>->->->>-->>>>
>->->-->>->->>>
>>->>>>-->->>>>
>>>-->>->--->>>
>->->>>>>->>>>
>>-->->>...

output:

Yes 9
9 5
8 5
7 5
6 5
5 5
4 5
3 5
1 5
2 7
Yes 11
10 5
9 5
7 5
5 5
3 5
2 5
1 5
4 5
6 5
8 6
11 5
Yes 9
9 5
8 5
6 5
5 5
4 5
3 5
1 5
2 7
7 7
Yes 11
11 5
10 5
9 5
8 5
7 5
5 5
3 5
1 5
2 5
4 5
6 5
Yes 8
7 5
6 5
5 5
4 5
2 5
1 5
3 8
8 5
Yes 11
11 5
10 5
9 5
8 5
6 5
5 5
3 5
2 5
1 5
4 5
7 8
Yes 9
9 5
1 5
2 5
3...

result:

ok ok (4032 test cases)

Test #4:

score: 0
Accepted
time: 8ms
memory: 3796kb

input:

10000
>>>>->->>->>->>>>
>->-->>->>->>>>>>
>->->>-->--->>>>>
>---->-->->>>>>>>
>->-->>--->>->>>>
>->>->>>>>>-->>>
>>--->->-->>->>>
>-->---->>>->>>
>->----->->->>>>>
>>--->---->-->>>>
>>-->->->--->>>
>----->>-->>->>>>
>-->->->>>>>->>>>
>>->>---->-->>>
>>->>-->>>-->>>
>------>->>>->>>>
>->->-->->>>->>>...

output:

Yes 13
13 5
11 5
10 5
8 5
7 5
5 5
1 5
2 5
3 5
4 5
6 5
9 5
12 5
Yes 13
13 5
12 5
11 5
9 5
8 5
6 5
5 5
4 5
2 5
1 5
3 6
7 5
10 5
Yes 13
13 5
12 5
11 5
10 5
8 5
7 5
5 5
4 5
2 5
1 5
3 5
6 6
9 7
Yes 13
13 5
12 5
11 5
10 5
8 5
7 5
5 5
4 5
3 5
2 5
1 8
6 6
9 5
Yes 13
13 5
11 5
10 5
9 5
8 5
6 5
5 5
4 5
2 5
1 ...

result:

ok ok (10000 test cases)

Test #5:

score: 0
Accepted
time: 19ms
memory: 3852kb

input:

10000
>>>-->>>>-->---->->->-->>>
>>-->>>>->-->>->>>
>->-->--->--->->-->>--->>->->>-->->->>>>>>->>>>----->->--->>----->>-->>>----->->->>>--->>->>-->->->->---->>->>>-->>->->>>->->>>>->>->->>-->>>->>->>-->>>>-->>-->>>->>->->>>--->>>-->>>--->>->->>>>>->->---->>>>->>>
->->>>>--->>>>>>->>>->>>>->->-->-->>...

output:

Yes 22
22 5
20 5
18 5
16 5
15 5
14 5
13 5
11 5
10 5
8 5
7 5
6 5
5 5
4 5
1 5
2 5
3 6
9 6
12 8
17 5
19 5
21 6
Yes 14
13 5
12 5
11 5
9 5
7 5
6 5
5 5
4 5
3 5
1 5
2 6
8 5
10 6
14 5
Yes 207
206 5
205 5
204 5
203 5
202 5
201 5
200 5
198 5
196 5
194 5
193 5
192 5
191 5
190 5
188 5
186 5
185 5
184 5
183 5
18...

result:

ok ok (10000 test cases)

Test #6:

score: 0
Accepted
time: 23ms
memory: 3844kb

input:

9999
->->--->>>>->->--->>--
->>>--->>>-->>--->>---
-->>>>>>>-
>>>->>>>>>>--
>>-->-->->----->->>>>->>->---->->
>-->->>>--->->->>->->-
>->--->--->>>>->>>----->------>>-->->>>
>>->>>->>>---->>>->>>>>>>>>->--->>->>>>>-->>>->->->>-->->--->->-->->>->->->>-->-->>>>>>>>--->>--->->>>-->->----->>-->->>--->-->...

output:

No
No
No
No
No
No
Yes 35
34 5
33 5
31 5
30 5
29 5
28 5
27 5
26 5
25 5
23 5
22 5
21 5
20 5
19 5
17 5
16 5
15 5
13 5
12 5
11 5
10 5
9 5
8 5
6 5
5 5
4 5
2 5
1 5
3 7
7 7
14 5
18 9
24 10
32 6
35 5
Yes 125
125 5
123 5
122 5
121 5
119 5
118 5
116 5
115 5
113 5
112 5
111 5
110 5
109 5
108 5
106 5
104 5
103 ...

result:

ok ok (9999 test cases)

Test #7:

score: 0
Accepted
time: 16ms
memory: 4424kb

input:

5
>-->>>>>--->->->>->>>>>->->-->-->->>>-->->--->>>------>->>-->>>------->>---->-->>>>>>-->>--->>-->->->>>>->-->------>>->>>>->>>-->---->--->>-->-->->--->->->->->>->-->->--->>>>->>->--->->>-->>>>>>->>>>->>--->->>-->>->->---->>>->->>->>->--->->->-->->>->->-->->------>>>->>>>>->>-->>->>>->>>>>----->---...

output:

No
No
Yes 95944
95943 5
95942 5
95941 5
95940 5
95939 5
95937 5
95935 5
95934 5
95932 5
95930 5
95929 5
95927 5
95926 5
95925 5
95923 5
95921 5
95920 5
95919 5
95918 5
95917 5
95915 5
95914 5
95912 5
95911 5
95910 5
95909 5
95907 5
95905 5
95904 5
95902 5
95900 5
95899 5
95898 5
95896 5
95895 5
9589...

result:

ok ok (5 test cases)

Test #8:

score: 0
Accepted
time: 16ms
memory: 4268kb

input:

5
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...

output:

No
Yes 99996
99996 5
1 5
2 5
3 5
4 5
5 5
6 5
7 5
8 5
9 5
10 5
11 5
12 5
13 5
14 5
15 5
16 5
17 5
18 5
19 5
20 5
21 5
22 5
23 5
24 5
25 5
26 5
27 5
28 5
29 5
30 5
31 5
32 5
33 5
34 5
35 5
36 5
37 5
38 5
39 5
40 5
41 5
42 5
43 5
44 5
45 5
46 5
47 5
48 5
49 5
50 5
51 5
52 5
53 5
54 5
55 5
56 5
57 5
58 ...

result:

ok ok (5 test cases)

Test #9:

score: 0
Accepted
time: 25ms
memory: 3984kb

input:

20
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...

output:

Yes 24996
24996 5
24995 5
24994 5
24993 5
24992 5
24991 5
24990 5
24989 5
24988 5
24987 5
24986 5
24985 5
24984 5
24983 5
24982 5
24981 5
24980 5
24979 5
24978 5
24977 5
24976 5
24975 5
24974 5
24973 5
24972 5
24971 5
24970 5
24969 5
24968 5
24967 5
24966 5
24965 5
24964 5
24963 5
24962 5
24961 5
24...

result:

ok ok (20 test cases)

Test #10:

score: 0
Accepted
time: 22ms
memory: 4276kb

input:

20
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...

output:

Yes 24996
24996 5
24995 5
24994 5
24993 5
24992 5
24991 5
24990 5
24989 5
24988 5
24987 5
24986 5
24985 5
24984 5
24983 5
24982 5
24981 5
24980 5
24979 5
24978 5
24977 5
24976 5
24975 5
24974 5
24973 5
24972 5
24971 5
24970 5
24969 5
24968 5
24967 5
24966 5
24965 5
24964 5
24963 5
24962 5
24961 5
24...

result:

ok ok (20 test cases)

Extra Test:

score: 0
Extra Test Passed