#include<bits/stdc++.h>
using namespace std;
int fact( int x)
{
if ( x== 1 || 0 )
return 1 ;
return x* ( x- 1 ) ;
}
int findRank( string & A) {
string b= A;
sort( A.begin ( ) ,A.end ( ) ) ;
int l= A.length ( ) ;
int pos= 1 ;
for ( int i= 0 ; i< l- 1 ; i++ )
{
char ch= b[ i] ;
int nless= A.find ( to_string( ch) ) ;
cout << nless<< " " ;
pos+ = ( nless* fact( l- i- 1 ) ) ;
cout << pos<< " " ;
A.erase ( nless,1 ) ;
}
return pos;
}
int main( )
{
string a= "abc" ;
cout << findRank( a) ;
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGZhY3QoaW50IHgpCnsKICAgIGlmKHg9PTEgfHwgMCkKICAgICByZXR1cm4gMTsKICAgIHJldHVybiB4Kih4LTEpOyAKfQoKCmludCBmaW5kUmFuayhzdHJpbmcgJkEpIHsKICAgIHN0cmluZyBiPUE7CiAgICBzb3J0KEEuYmVnaW4oKSxBLmVuZCgpKTsKICAgIGludCBsPUEubGVuZ3RoKCk7CiAgICBpbnQgcG9zPTE7CiAgICBmb3IoaW50IGk9MDtpPGwtMTtpKyspCiAgICB7CiAgICAgICAgY2hhciBjaD1iW2ldOwogICAgICAgIGludCBubGVzcz1BLmZpbmQodG9fc3RyaW5nKGNoKSk7CiAgICAgICAgY291dDw8bmxlc3M8PCIgIjsKICAgICAgICBwb3MrPShubGVzcypmYWN0KGwtaS0xKSk7CiAgICAgICAgY291dDw8cG9zPDwiICI7CiAgICAgICAgQS5lcmFzZShubGVzcywxKTsKICAgIH0KICAgIHJldHVybiBwb3M7CiAgICAKfQppbnQgbWFpbigpCnsKCXN0cmluZyBhPSJhYmMiOwogICAgY291dDw8ZmluZFJhbmsoYSk7CQoJcmV0dXJuIDA7Cn0K