# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
433566 | JeanBombeur | Boat (APIO16_boat) | C++17 | 4 ms | 2252 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <cstdio>
#define int long long
using namespace std;
// <|°_°|>
const int MOD = (1000 * 1000 * 1000 + 7);
const int MAX_BATEAUX = (501);
int DP[MAX_BATEAUX][MAX_BATEAUX];
pair <int, int> Bornes[MAX_BATEAUX];
int nbGroupes;
void Read() {
scanf("%lld", &nbGroupes);
for (int i = 1; i <= nbGroupes; i ++)
{
scanf("%lld %lld", &Bornes[i].first, &Bornes[i].second);
}
nbGroupes ++;
return;
}
void Solve() {
DP[0][0] = 1;
for (int i = 0; i < nbGroupes - 1; i ++)
{
for (int j = 0; j < nbGroupes; j ++)
{
DP[i][j] %= MOD;
DP[i + 1][j] += DP[i][j];
if (Bornes[i + 1].first > Bornes[j].first)
DP[i + 1][i + 1] += DP[i][j];
}
}
int sum = -1;
for (int i = 0; i < nbGroupes; i ++)
{
sum += DP[nbGroupes - 1][i];
}
printf("%lld\n", sum % MOD);
return;
}
signed main() {
Read();
Solve();
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |