------------------------------------------------  一眼单调性。 分析后可以二分答案。 本质是: 
      
       
        
        
          ( 
         
        
          j 
         
        
          − 
         
        
          i 
         
        
          ) 
         
        
          ∣ 
         
        
          n 
         
        
          , 
         
        
          s 
         
        
          [ 
         
        
          i 
         
        
          ] 
         
        
          ! 
         
        
          = 
         
        
          s 
         
        
          [ 
         
        
          j 
         
        
          ] 
         
        
       
         (j-i)|n,s[i]!=s[j] 
        
       
      ( j − i ) ∣ n , s [ i ]! = s [ j ]  
      
       
        
        
          T 
         
        
       
         T 
        
       
      T  设最小的不能被  
      
       
        
        
          n 
         
        
       
         n 
        
       
      n  
      
       
        
        
          t 
         
        
       
         t 
        
       
      t  
      
       
        
        
          T 
         
        
          > 
         
        
          = 
         
        
          t 
         
        
       
         T>=t 
        
       
      T >= t  
      
       
        
        
          T 
         
        
          = 
         
        
          = 
         
        
          t 
         
        
       
         T==t 
        
       
      T == t  
      
       
        
        
          s 
         
        
          [ 
         
        
          i 
         
        
          ] 
         
        
          = 
         
        
          = 
         
        
          s 
         
        
          [ 
         
        
          j 
         
        
          ] 
         
        
       
         s[i]==s[j] 
        
       
      s [ i ] == s [ j ]  
      
       
        
        
          t 
         
        
       
         t 
        
       
      t  
      
       
        
        
          n 
         
        
       
         n 
        
       
      n  绝妙的构造… 字符串贪心匹配。看着题解想了好久,值得多几次回味。解法和优化亦多样,正难则反/搜索/动态规划… ------------------------代码------------------------#include <bits/stdc++.h>
#define int long long
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
#define bugv(VEC)               \
    {                           \
        for (auto Vec : VEC)    \
            cout << Vec << ' '; \
        cout << '\n';           \
    }
void _();
signed main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cout << fixed << setprecision(10);
    int T = 1;
    cin >> T;
    while (T--)
        _();
    return 0;
}
void _()
{
    int n;
    cin >> n;
    vector<int> a(n + 1);
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    sort(begin(a) + 1, end(a));
    // bugv(a);
    auto ok = [&](int x)
    {
        int cnt = 0;
        // bug2(1, x);
        for (int i = 1; i <= n;)
        {
            int j = i;
            cnt++;
            for (; j <= n && a[j] - a[i] <= x << 1; j++)
                ;
            i = j;
            // bug(i);
        }
        // bug2(2, cnt);
        return cnt <= 3;
    };
    // ok(2);
    int l = -1, r = 1e9;
    while (r - l - 1)
    {
        int mid = l + r >> 1;
        if (ok(mid))
            r = mid;
        else
            l = mid;
    }
    cout << r << '\n';
}
#include <bits/stdc++.h>
#define int long long
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
#define bugv(VEC)               \
    {                           \
        for (auto Vec : VEC)    \
            cout << Vec << ' '; \
        cout << '\n';           \
    }
void _();
signed main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cout << fixed << setprecision(10);
    int T = 1;
    cin >> T;
    while (T--)
        _();
    return 0;
}
void _()
{
    int n;
    cin >> n;
    int st = 1;
    while (n % st == 0)
        st++;
    for (int i = 0; i < n; i++)
        cout << (char)('a' + i % st);
    cout << '\n';
}
#include <bits/stdc++.h>
#define int long long
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
#define bugv(VEC)               \
    {                           \
        for (auto Vec : VEC)    \
            cout << Vec << ' '; \
        cout << '\n';           \
    }
void _();
signed main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cout << fixed << setprecision(10);
    int T = 1;
    cin >> T;
    while (T--)
        _();
    return 0;
}
void _()
{
    string s;
    cin >> s;
    int m;
    cin >> m;
    string l, r;
    cin >> l >> r;
    int st = 0;
    int n = s.size();
    s = ' ' + s;
    for (int i = 0; i < m; i++)
    {
        int mx = st + 1;
        for (int j = l[i] - '0'; j <= r[i] - '0'; j++)
        {
            int t = st + 1;
            while (t <= n && j != s[t] - '0')
                t++;
            mx = max(mx, t);
        }
        st = mx;
    }
    cout << (st > n ? "YES" : "NO") << '\n';
}