Submission #1238674

#TimeUsernameProblemLanguageResultExecution timeMemory
1238674JerBouquet (EGOI24_bouquet)C++20
0 / 100
3096 ms15172 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 2e5 + 5;
int l[MAXN], r[MAXN];
int n;
int dp[MAXN];

int solve(int i)
{
    if (i < 0)
        return 0;

    if (i == 0)
        return 1;

    if (dp[i] != -1)
        return dp[i];

    int res = solve(i - 1);
    for (int j = i - l[i] - 1; j >= 0; j--)
        if (j + r[j] < i)
            res = max(res, 1 + solve(j));

    return dp[i] = res;
}

int main()
{
    scanf("%d", &n);

    for (int i = 0; i < n; i++)
        scanf("%d%d", &l[i], &r[i]);

    fill(dp, dp + n, -1);
    printf("%d\n", solve(n - 1));

    return 0;
}

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:31:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |     scanf("%d", &n);
      |     ~~~~~^~~~~~~~~~
Main.cpp:34:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   34 |         scanf("%d%d", &l[i], &r[i]);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...