1 条题解

  • 0
    @ 2024-8-2 16:19:44

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    
    const int maxn = 5e6 + 10;
    int n;
    char s[maxn];
    
    int main() {
        cin >> n;
        for (int i = 0; i < n; i++)
            cin >> s[i];
    
        int k = 0, i = 0, j = 1;
    
        while (k < n && i < n && j < n) {
            if (s[(i + k) % n] == s[(j + k) % n]) {
                k++;
            } else {
                if (s[(i + k) % n] > s[(j + k) % n])
                    i = i + k + 1;
                else
                    j = j + k + 1;
    
                if (i == j)
                    i++;
    
                k = 0;
            }
        }
    
        cout << min(i, j);
        return 0;
    }
    
    
    • 1

    信息

    ID
    1008
    时间
    1000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    2
    已通过
    2
    上传者