Submission #946655

#TimeUsernameProblemLanguageResultExecution timeMemory
946655Ice_manBoat (APIO16_boat)C++14
9 / 100
1 ms600 KiB
#include <iostream>
#include <chrono>

#define maxn 505
#define maxlog 20
#define mod 1000000007
#define INF 1000000010
#define LINF 1000000000000000005
#define endl '\n'
#define pb(x) push_back(x)
#define X first
#define Y second
#define control cout<<"passed"<<endl;

#pragma GCC optimize("O3" , "Ofast" , "unroll-loops" , "fast-math")
#pragma GCC target("avx2")

using namespace std;

std::chrono::high_resolution_clock::time_point startT, currT;
constexpr double TIME_MULT = 1;

double timePassed()
{
    using namespace std::chrono;
    currT = high_resolution_clock::now();
    double time = duration_cast<duration<double>>(currT - startT).count();
    return time * TIME_MULT;
}

int l[maxn], r[maxn];
int n;
int dp[maxn];

void read()
{
    cin >> n;

    for(int i = 1; i <= n; i++)
        cin >> l[i] >> r[i];
}

int ans = 0;

void calc_dp()
{
    dp[0] = 1;

    for(int i = 1; i <= n; i++)
        for(int j = i - 1; j > -1; j--)
            if(l[i] > l[j])
            {
                dp[i] += dp[j];
                if(dp[i] >= mod)
                    dp[i] -= mod;
            }

    for(int i = 1; i <= n; i++)
    {
        ans += dp[i];
        if(ans >= mod)
            ans -= mod;
    }

    cout << ans << endl;
}





int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    //startT = std::chrono::high_resolution_clock::now();

    read();
    calc_dp();


    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...