P6120悬赏2个关注!!!
查看原帖
P6120悬赏2个关注!!!
649111
封禁用户楼主2022/8/22 11:22

20PTS

#include <bits/stdc++.h>
using namespace std;
int n, a[100010], sum, s, maxx = 1000000000, ans = 0, q = 0, s1;
int main() {
    long long ans = 0;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        scanf("%d", &a[i]);
        sum = sum + a[i];
        if (maxx >= sum - i) {
            maxx = sum - i;
            s1 = i;
        }
    }
    if (s1 > n) {
        s1 %= n;
    }
    s = s1 + 1;
    int i = s;
    for (;; i++) {
        if (i > n) {
            i %= n;
        }
        // q=i;
        while (a[i]) {
            s++;
            a[i]--;
            if (s > i) {
                ans += (s - i - 1) * (s - i - 1);
            } else {
                ans += (s + n - i - 1) * (s + n - i - 1);
            }
            if (s > n) {
                s %= n;
            }
        }
        if (s > n) {
            s %= n;
        }
        if (i == s1) {
            break;
        }
    }
    printf("%lld", ans);
    return 0;
}
  
2022/8/22 11:22
加载中...