Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<string>#include<vector>#include<algorithm>using namespace std;struct H{vector<int> group;int t;H(vector<int> group1,int t1){group = group1;t = t1;}bool operator()(int a,int b){if(group[a] != group[b])return group[a] < group[b];return group[a + t] < group[b + t];}};vector<int> getsiffux(vector<int> s){int n = s.size();int i;vector<int> group(n+1);for(i = 0;i < n;i++)group[i] = s[i];int t = 1;group[n] = -1;vector<int> perm(n);for(i = 0;i < n;i++)