天天看点

HUST 1602 Substring

Description

This problem is quiet easy. 

Initially, there is a string A. 

Then we do the following process infinity times. 

 A := A +  

“HUSTACM” + A 

For example, if a = “X”, then 

After 1 step, A will become  

“XHUSTACMX”

After 2 steps, A will become  

“XHUSTACMXHUSTACMXHUSTACMX”

Let A = “X”, Now I want to know the characters from L to R of the final string.

Input

Multiple test cases, in each test case, there are only one line containing two numbers L and R. 

1 <= L <= R <= 10^12 

R-L <= 100

Output

For each test case, you should output exactly one line which containing the  

substring.

Sample Input

5 10

Sample Output

TACMXH

#include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long LL;
const int maxn=1e5+10;
LL l,r;
char s[10]={"XHUSTACM"};

int main()
{
  while (~scanf("%lld%lld",&l,&r))
  {
    int len=r-l+1;
    for (int i=0;i<len;i++)
    {
      printf("%c",s[(i+(l-1)%8)%8]);
    }
    printf("\n");
  }
  return 0;
}