답안 #1100341

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1100341 2024-10-13T14:36:31 Z rukashii 3단 점프 (JOI19_jumps) C++17
5 / 100
195 ms 288072 KB
#include <bits/stdc++.h>
using namespace std;

#define int long long

const int maxn = 1e3 + 4;
const int maxm = 5e3 + 4;
int a[maxn] , n , m , dp[maxm][maxm] , ma[maxm][maxm];
int l[maxn] , r[maxn];

void nhap()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin >> n;
    for (int i = 1 ; i <= n ; i ++)
        cin >> a[i];
    cin >> m;
    for (int i = 1 ; i <= m ; i ++)
        cin >> l[i] >> r[i];
}

void xl1(int l , int r)
{
    int ans = 0;
    for (int i = l ; i <= r - 2 ; i ++)
    {
        for (int j = i + 1 ; j <= r - 1 ; j ++)
        {
            for (int k = j + (j - i) ; k <= r ; k ++)
            {
                ans = max(ans , a[i] + a[j] + a[k]);
            }
        }
    }
    cout << ans << '\n';
}

void Sub1()
{
    for (int i = 1 ; i <= m ; i ++)
    {
        xl1(l[i] , r[i]);
    }
}

void Sub2()
{
    for (int i = 1 ; i <= n ; i ++)
        ma[i][i] = a[i];
    for (int i = 1 ; i < n ; i ++)
        for (int j = i + 1 ; j <= n ; j ++)
        {
            ma[i][j] = max(ma[i][j - 1] , a[j]);
        }
    for (int i = 2 ; i < n ; i ++)
    {
        for (int j = 1 ; j <= n - i ; j ++)
        {
            dp[j][j + i] = max(dp[j][j + i - 1] , max(dp[j + 1][j + i] , a[j] + a[j + i] + ma[j + 1][(j + i + 1) / 2]));
        }
    }
    for (int i = 1 ; i <= m ; i ++)
    {
        cout << dp[l[i]][r[i]] << '\n';
    }
}

signed main()
{
    nhap();
    if (n <= 100 && m <= 100)
        Sub1();
    else
        if (n <= 5000)
        Sub2();
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 1 ms 336 KB Output is correct
4 Correct 1 ms 504 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 1 ms 336 KB Output is correct
8 Correct 1 ms 336 KB Output is correct
9 Correct 1 ms 336 KB Output is correct
10 Correct 2 ms 336 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 1 ms 336 KB Output is correct
4 Correct 1 ms 504 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 1 ms 336 KB Output is correct
8 Correct 1 ms 336 KB Output is correct
9 Correct 1 ms 336 KB Output is correct
10 Correct 2 ms 336 KB Output is correct
11 Runtime error 195 ms 288072 KB Execution killed with signal 11
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 19 ms 556 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 336 KB Output is correct
2 Correct 1 ms 336 KB Output is correct
3 Correct 1 ms 336 KB Output is correct
4 Correct 1 ms 504 KB Output is correct
5 Correct 1 ms 336 KB Output is correct
6 Correct 1 ms 336 KB Output is correct
7 Correct 1 ms 336 KB Output is correct
8 Correct 1 ms 336 KB Output is correct
9 Correct 1 ms 336 KB Output is correct
10 Correct 2 ms 336 KB Output is correct
11 Runtime error 195 ms 288072 KB Execution killed with signal 11
12 Halted 0 ms 0 KB -