#include <bits/stdc++.h>
using namespace std;
#define st first
#define nd second
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
set <int> t[109];
bool czy[109];
string T[309];
int N;
string dodaj(int i , int j )
{
if(max(i,j) > N)return "";
string aktt;
aktt += "CMPSWP R";
aktt += to_string(i);
aktt += " R";
aktt += to_string(j);
aktt += " ";
return aktt;
}
void wypisz(vector <int > S)
{
for(auto p : S)cerr << p << ' ';
cerr << '\n';
}
void rek(vector <int> V , int licz)
{
if(V.size() == 1)
{
return ;
}
if(V.size()%2)V.push_back(N+1);
vector <int > V1 , V2;
for(int i = 0 ; i < V.size()/2 ; i++)V1.push_back(V[i]);
for(int i = V.size()/2 ; i < V.size() ; i++)V2.push_back(V[i]);
for(int i = 0 ; i < V1.size() ; i++)
{
for(int j = 0 ;j < V1.size() ; j++)
{
T[licz] += dodaj(V1[j] , V2[(j+i)%V1.size()]);
}
licz++;
}
rek(V1,licz);
rek(V2,licz);
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> N;
vector <int> POm;
for(int i =1 ; i <= N ; i++)
{
POm.push_back(i);
}
rek(POm , 0);
vector <string > V;
int licz = 0;
while(T[licz].size() > 0)
{
V.push_back(T[licz]);
licz++;
}
cout << V.size() << '\n';
for(auto p : V)cout << p << '\n';
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |