fork download
  1. //----->|try=0; while(!success) try++;|<------
  2. //----->|Belief Yourself,Respect Yourself|<----
  3. //----->|Be Proud Of Yourself,You're Doing Your best|<-----
  4. #include<bits/stdc++.h>
  5. using namespace std;
  6. #define uniq(x) x.erase(unique(x.begin(),x.end()), x.end()) //Unique value find from vector
  7. #define upper(arr,n,fixed) upper_bound(arr,arr+n,fixed)-arr //Upper value search;
  8. #define lower(arr,n,fixed) upper_bound(arr,arr+n,fixed)-arr //Lower value search;
  9. #define max3(a,b,c) max(max(a,b),c)//maximum value find three value;
  10. #define min3(a,b,c) min(min(a,b),c)//minimum value find three value;
  11. #define rep(i, n) for(int i = 0; i < n; ++i)
  12. #define REP(i, n) for(int i = 1; i <= n; ++i)
  13. #define rep1(i,start,n) for(int i=start;i<n;++i)
  14. #define PI acos(-1.0)//PI Calculation
  15. #define LL long long
  16. #define AND(a,b) ((a) & (b))
  17. #define OR(a,b) ((a)|(b))
  18. #define XOR(a,b) ((a) ^ (b))
  19. #define mp make_pair
  20. #define sqr(x) ((x)*(x))
  21. #define sqrt(x) sqrt(1.0*(x))
  22. #define INF_MAX 2147483647
  23. #define INF_MIN -2147483647
  24. #define MX 1000005
  25. #define MOD 1000000007
  26. template<typename T> T POW(T b,T p) //Pow calculation
  27. {
  28. T r=1;
  29. while(p) {
  30. if(p&1)r=(r*b);
  31. b=(b*b);
  32. p>>=1;
  33. }
  34. return r;
  35. }
  36.  
  37. template<typename T> T BigMod(T b,T p,T m) //BigMod Calculation
  38. {
  39. T r=1;
  40. while(p) {
  41. if(p&1)r=(r*b)%m;
  42. b=(b*b)%m;
  43. p>>=1;
  44. }
  45. return r;
  46. }
  47.  
  48. //||--------------------------->||Main_Code_Start_From_Here||<---------------------------------||
  49. map<string,int>mymap;
  50. void go()
  51. {
  52. string s,s1,s2,s3,s4,s5;
  53. string str="abcdefghijklmnopqrstuvwxyz";
  54. int sum=1;
  55. //string length 1 genenate lexigraphically string;
  56. rep(i,26)
  57. {
  58. s=str[i];
  59. mymap[s]=sum++;
  60. }
  61.  
  62.  
  63. //string length 2 generate lexigraphically string;
  64. rep(i,26)
  65. {
  66. s1=str[i];
  67. rep1(j,i+1,26)
  68. {
  69. s2=str[j];
  70. s=s1+s2;
  71. mymap[s]=sum++;
  72. }
  73. }
  74.  
  75.  
  76. //string length 3 generate lexigraphically string;
  77. rep(i,26)
  78. {
  79. s1=str[i];
  80. rep1(j,i+1,26)
  81. {
  82. s2=str[j];
  83. rep1(k,j+1,26)
  84. {
  85. s3=str[k];
  86. s=s1+s2+s3;
  87. mymap[s]=sum++;
  88. }
  89. }
  90. }
  91.  
  92. //string length 4 generate lexigraphically string;
  93. rep(i,26)
  94. {
  95. s1=str[i];
  96. rep1(j,i+1,26)
  97. {
  98. s2=str[j];
  99. rep1(k,j+1,26)
  100. {
  101. s3=str[k];
  102. rep1(l,k+1,26)
  103. {
  104. s4=str[l];
  105. s=s1+s2+s3+s4;
  106. mymap[s]=sum++;
  107. }
  108. }
  109. }
  110. }
  111.  
  112.  
  113. //string length 5 generate lexigraphically;
  114. rep(i,26)
  115. {
  116. s1=str[i];
  117. rep1(j,i+1,26)
  118. {
  119. s2=str[j];
  120. rep1(k,j+1,26)
  121. {
  122. s3=str[k];
  123. rep1(l,k+1,26)
  124. {
  125. s4=str[l];
  126. rep1(m,l+1,26)
  127. {
  128. s5=str[m];
  129. s=s1+s2+s3+s4+s5;
  130. mymap[s]=sum++;
  131. }
  132. }
  133. }
  134. }
  135. }
  136.  
  137. }
  138. int main()
  139. {
  140. //freopen("a.in", "r", stdin);
  141. //freopen("a.out", "w", stdout);
  142. go();
  143. string s;
  144. while(cin>>s)
  145. {
  146. cout<<mymap[s]<<endl;
  147. }
  148. }
  149.  
  150.  
  151.  
Success #stdin #stdout 0.08s 8504KB
stdin
z
a
cat
vwxyz
stdout
26
1
0
83681