fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define fast_io ios::sync_with_stdio(false); cin.tie(NULL)
  5. #define int long long
  6.  
  7. void solve() {
  8. string s;
  9. cin >> s;
  10. int n = s.size();
  11.  
  12. if (n == 1) {
  13. cout << 1 << "\n";
  14. return;
  15. }
  16.  
  17. for (int i = 0; i + 1 < n; i++) {
  18. if (s[i] == '*' && s[i+1] == '*') {
  19. cout << -1 << "\n";
  20. return;
  21. }
  22. }
  23.  
  24. bool seenGt = false;
  25. for (char c : s) {
  26. if (c == '>') seenGt = true;
  27. if (c == '<' && seenGt) {
  28. cout << -1 << "\n";
  29. return;
  30. }
  31. }
  32.  
  33. for (int i = 0, seen = 0; i < n; i++) {
  34. if (s[i] == '>') seen = 1;
  35. if (s[i] == '*' && seen) {
  36. cout << -1 << "\n";
  37. return;
  38. }
  39. }
  40.  
  41. for (int i = n-1, seen = 0; i >= 0; i--) {
  42. if (s[i] == '<') seen = 1;
  43. if (s[i] == '*' && seen) {
  44. cout << -1 << "\n";
  45. return;
  46. }
  47. }
  48.  
  49. int first_gt = -1;
  50. for (int i = 0; i < n; i++) {
  51. if (s[i] == '>') {
  52. first_gt = i;
  53. break;
  54. }
  55. }
  56.  
  57. int last_lt = -1;
  58. for (int i = 0; i < n; i++) {
  59. if (s[i] == '<') last_lt = i;
  60. }
  61.  
  62. if (first_gt == -1) {
  63. cout << n << "\n";
  64. return;
  65. }
  66.  
  67. if (last_lt == -1) {
  68. cout << n << "\n";
  69. return;
  70. }
  71.  
  72. int L = first_gt;
  73. int R = n - 1 - last_lt;
  74.  
  75. cout << max(L, R) << "\n";
  76. }
  77.  
  78. int32_t main() {
  79. fast_io;
  80. int t;
  81. cin >> t;
  82. while (t--) solve();
  83. return 0;
  84. }
  85.  
Success #stdin #stdout 0.01s 5324KB
stdin
4
*****
<<<>
>*<
*
stdout
-1
3
-1
1