QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#712037#9535. Arrow a Rowmango09AC ✓18ms4700kbC++142.4kb2024-11-05 14:22:112024-11-05 14:22:16

Judging History

This is the latest submission verdict.

  • [2024-11-05 14:22:16]
  • Judged
  • Verdict: AC
  • Time: 18ms
  • Memory: 4700kb
  • [2024-11-05 14:22:11]
  • Submitted

answer

// Ice cream? I scream! 
#include <bits/stdc++.h>
#ifdef ONLINE_JUDGE
	#define freopen Chitanda
#endif
#define wjy namespace
#define xsy std
typedef long long ll;
using wjy xsy;

template<typename T> void debug(string s, T x) {cerr << " " << s << " = " << x << " \n";}
template<typename T, typename... Args> void debug(string s, T x, Args... args) {for (int i = 0, b = 0; i < (int)s.size(); i++) if (s[i] == '(' || s[i] == '{') b++;else if (s[i] == ')' || s[i] == '}') b--;else if (s[i] == ',' && b == 0) {cerr << " " << s.substr(0, i) << " = " << x << " |";debug(s.substr(s.find_first_not_of(' ', i + 1)), args...);break;}}
#ifdef ONLINE_JUDGE
	#define Debug(...)
#else
	#define Debug(...) debug(#__VA_ARGS__, __VA_ARGS__)
#endif

const int MAXN = 1e6 + 5;

char s[MAXN];
vector<pair<int, int> > ans;
queue<int> q;
stack<int> p;

int main()
{
	int T;
	scanf("%d", &T);
	while (T--)
	{
		ans.clear();
		while (!q.empty())
			q.pop();
		while (!p.empty())
			p.pop();
		scanf("%s", s + 1);
		int n = strlen(s + 1);
		bool flg = true;
		for (int i = n; i >= n - 2; i--)
			flg &= (s[i] == '>');
		if (!flg)
		{
			puts("No");
			continue;
		}
		flg = false;
		for (int i = 1; i <= n; i++)
			flg |= (s[i] == '-');
		if (!flg)
		{
			puts("No");
			continue;
		}
		if (s[1] != '>')
		{
			puts("No");
			continue;
		}
		int pos;
		for (pos = 1; pos <= n; pos++)
			if (s[pos] != '>')
				break;
		pos--;
		flg = true;
		for (int i = n; i > pos; i--)
		{
			bool x = (i >= 3) && s[i] == '>' && s[i - 1] == '>' && s[i - 2] == '>' && (i - 2 >= 3);
			bool y = (i <= n - 1) && (i - 1 >= 3) && s[i] == '>' && s[i - 1] == '>' && s[i + 1] == '>';
			bool z = (i <= n - 2) && (i >= 3) && s[i] == '>' && s[i + 1] == '>' && s[i + 2] == '>';
			if (flg && i >= 3 && x)
				q.push(i), i -= 2;
			else if (flg && i >= 2 && y)
				q.push(i + 1), i--;
			else if (flg && i >= 2 && z)
				q.push(i + 2);
			else if (s[i] == '>')
				p.push(i), flg = false;
		}
		for (int i = pos; i >= 1; i--)
			if (s[i] == '>')
				p.push(i);
		while (p.size() > 1)
		{
			ans.push_back({p.top(), q.front()});
			p.pop();
			if (q.size() > 1)
				q.pop();
		}
		while (q.size())
			ans.push_back({p.top(), q.front()}), q.pop();
		printf("Yes %zu\n", ans.size());
		for (auto t : ans)
			printf("%d %d\n", t.first, t.second - t.first + 1);
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

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

output:

Yes 2
1 6
2 5
No
No
Yes 2
1 8
1 5

result:

ok ok (4 test cases)

Test #2:

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

input:

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

output:

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

result:

ok ok (126 test cases)

Test #3:

score: 0
Accepted
time: 3ms
memory: 4104kb

input:

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

output:

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

result:

ok ok (4032 test cases)

Test #4:

score: 0
Accepted
time: 7ms
memory: 4020kb

input:

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

output:

Yes 9
1 17
2 15
3 14
4 13
6 11
8 9
9 8
11 6
12 5
Yes 6
1 17
3 12
6 9
7 8
9 6
10 5
Yes 5
1 17
3 13
5 11
6 10
9 7
Yes 3
1 17
6 9
9 5
Yes 6
1 17
3 14
6 11
7 10
11 6
12 5
Yes 3
1 16
3 9
4 5
Yes 6
1 16
2 15
6 11
8 9
11 6
12 5
Yes 2
1 15
4 8
Yes 4
1 17
3 13
9 7
11 5
Yes 4
1 17
2 15
6 11
11 6
Yes 5
1 15
2 ...

result:

ok ok (10000 test cases)

Test #5:

score: 0
Accepted
time: 13ms
memory: 3816kb

input:

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

output:

Yes 11
1 26
2 25
3 24
6 21
7 20
8 19
9 18
12 15
17 10
19 8
21 6
Yes 9
1 18
2 17
5 14
6 13
7 12
8 11
10 9
13 6
14 5
Yes 106
1 211
3 205
6 201
10 197
14 193
16 191
19 188
20 187
24 183
25 182
27 180
29 178
30 177
33 174
35 172
37 170
38 169
39 168
40 167
41 166
42 165
44 163
45 162
46 161
47 160
53 15...

result:

ok ok (10000 test cases)

Test #6:

score: 0
Accepted
time: 14ms
memory: 3812kb

input:

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

output:

No
No
No
No
No
No
Yes 14
1 39
3 37
7 33
11 29
12 28
13 27
14 26
16 24
17 23
18 22
24 16
31 9
32 8
35 5
Yes 69
1 129
2 128
4 126
5 125
6 124
8 122
9 121
10 120
15 115
16 114
17 113
19 111
20 110
21 109
22 108
23 107
24 106
25 105
26 104
27 103
29 101
33 97
34 96
36 94
37 93
38 92
39 91
40 90
43 87
44...

result:

ok ok (9999 test cases)

Test #7:

score: 0
Accepted
time: 12ms
memory: 4232kb

input:

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

output:

No
No
Yes 48167
1 95948
2 95943
3 95941
5 95939
6 95938
7 95937
9 95935
10 95934
12 95932
17 95927
18 95926
19 95925
20 95924
22 95922
23 95921
24 95920
26 95918
27 95917
28 95916
30 95914
33 95911
34 95910
36 95908
37 95907
39 95905
40 95904
41 95903
42 95902
44 95900
45 95899
46 95898
47 95897
51 ...

result:

ok ok (5 test cases)

Test #8:

score: 0
Accepted
time: 18ms
memory: 4700kb

input:

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

output:

No
Yes 99995
1 100000
2 99998
3 99997
4 99996
5 99995
6 99994
7 99993
8 99992
9 99991
10 99990
11 99989
12 99988
13 99987
14 99986
15 99985
16 99984
17 99983
18 99982
19 99981
20 99980
21 99979
22 99978
23 99977
24 99976
25 99975
26 99974
27 99973
28 99972
29 99971
30 99970
31 99969
32 99968
33 9996...

result:

ok ok (5 test cases)

Test #9:

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

input:

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

output:

Yes 11294
1 25000
2 24996
3 24992
4 24988
5 24984
6 24980
7 24976
8 24972
9 24968
10 24964
11 24960
12 24956
13 24952
14 24948
15 24944
16 24940
17 24936
18 24932
19 24928
20 24924
21 24920
22 24916
23 24912
24 24908
25 24904
26 24900
27 24896
28 24892
29 24888
30 24884
31 24880
32 24876
33 24872
34...

result:

ok ok (20 test cases)

Test #10:

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

input:

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

output:

Yes 7574
1 25000
2 24996
3 24992
4 24988
5 24984
6 24980
7 24976
8 24972
9 24968
10 24964
11 24960
12 24956
13 24952
14 24948
15 24944
16 24940
17 24936
18 24932
19 24928
20 24924
21 24920
22 24916
23 24912
24 24908
25 24904
26 24900
27 24896
28 24892
29 24888
30 24884
31 24880
32 24876
33 24872
34 ...

result:

ok ok (20 test cases)

Extra Test:

score: 0
Extra Test Passed