1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
   
#define push push_back
#define ll long long
   
using namespace std;
   
int main() {
   ios_base::sync_with_stdio(0);
   cin.tie(0);

   int n;
   cin >> n;

   vector<string> D(n);
   for(int i = 0; i < n; i++) {
       cin >> D[i];
   }

   for(int w = 0; w < n; w++){
       for(int z = w; z < n; z++){
           string TD = D[w] + D[z];

           vector<int> SP = {};

           if(TD[0] == 'P') SP[0] = 1;
           else SP[0] = 0;

           for(int i = 1; i < n; i++) {
               int v = 0;

               if(TD[i] == 'P') v = 1;
               else v = 0;

               SP[i] = SP[i-1] + v;
           }

           vector<int> SL = {};

           if(TD[0] == 'L') SL[0] = 1;
           else SL[0] = 0;

           for(int i = 1; i < n; i++) {
               int v = 0;
               if(TD[i] == 'L') v = 1;
               else v = 0;

               SP[i] = SP[i-1] + v;
            }

            for(int i = 0; i < n; i++) {
                // Processment of the SL prefix table and getting the possible combinations
            }
       }
   }
}