QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#601370#978. Maximum Subsequencefractal#WA 0ms3524kbC++171.7kb2024-09-29 22:35:462024-09-29 22:35:46

Judging History

This is the latest submission verdict.

  • [2024-09-29 22:35:46]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3524kb
  • [2024-09-29 22:35:46]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;

#define F first
#define S second
#define sz(x) (int)x.size()

const int N = 1e6;

long long n;
long long a[N];

long long solve(vector<long long> A) {
    int m = A.size() - 1;
    long long ans = A[0] + A[m] + (A[0] + A[m]) / 2 * (m - 1);
    int i = 0, j = m;
    for (int k = 1; k < m; ++k) {
        if (A[i] * (j - k) + A[j] * (k - i) < A[k] * (j - i)) {
            ans += (-(A[i] * (j - k) + A[j] * (k - i)) + A[k] * (j - i)) / 2;
            i = k;
        }
    }
    return ans;
}

int main() {
    cin.tie(0)->sync_with_stdio(0);
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        cin >> a[i];
        a[i] *= 2;
    }
    long long mx = *max_element(a + 1, a + n + 1);
    int L = n + 1, R = 0;
    for (int i = 1; i <= n; ++i) {
        if (a[i] == mx) {
            L = min(L, i);
            R = max(R, i);
        }
    }
    long long ans = 0;
    vector<long long> v;
    if (L == n || R == 1) {
        v = vector<long long>(a + 1, a + n + 1);
        if (R == 1) reverse(v.begin(), v.end());
        ans += solve(v);
    }
    else {
        ans += mx * max(0, (R - L - 1)) / 2;
        if (L > 1) {
            v = vector<long long>(a + 1, a + L + 1);
            ans += solve(v);
        }
        if (R < n) {
            v = vector<long long>(a + R, a + n + 1);
            reverse(v.begin(), v.end());
            ans += solve(v);
        }
        if (L == R) ans -= mx;
    }
    long long r = 1;
    n *= 2;
    const int mod = 998244353;
    long long pw = mod - 2;
    while (pw) {
        if (pw & 1) r = (r * n) % mod;
        n = (n * n) % mod;
        pw /= 2;
    }
    ans = (ans * r) % mod;
    cout << ans << '\n';
}

詳細信息

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3524kb

input:

4
1 -1 1 1

output:

748683265

result:

wrong answer 1st numbers differ - expected: '2', found: '748683265'