CPP O(n*n) code


#1
const int M = 1000003;
int mul(int a,int b){
    return ((a%M)*(b%M))%M;
}
int add(int a,int b){
    return ((a%M)+(b%M))%M;
}
int Solution::findRank(string A) {
    int n=A.length(),ans=1;
    vector<int>f(n+2,1);
    for(int i=1;i<=n;i++)f[i]=mul(f[i-1],i);
    for(int i=0;i<n;i++){
        int cnt=0;
        for(int j=i+1;j<n;j++){
            if(A[i]>A[j])
                cnt++;
        }
        ans=add(ans,mul(cnt,f[n-i-1]));
    }
    return ans;
}