제출 #554077

#제출 시각아이디문제언어결과실행 시간메모리
554077ala2Boat (APIO16_boat)C++14
9 / 100
2099 ms140764 KiB
    #include <bits/stdc++.h>
    //#define int long long
    #define F first
    #define S second
    #define pb push_back
    #define B begin()
    #define E end()

    using namespace std;
    int n;
    int a[1000];
    int b[1000];
    int d[200100];
    map<int,int>m;
    map<pair<int,int>,int>dp;
    const int mod=1e9+7;

    int f(int i,int j)
    {
         if(dp[{i,j}]!=0)
            return dp[{i,j}];

        if(i==n)
            return 1;
        int g=0;
        g+=f(i+1,j);
        if(m[i]!=m[j])
        {
            if(d[i]>d[j])
                g+=f(i+1,i);
            g%=mod;
        }
        return dp[{i,j}]=g%mod;

    }
    signed main()
    {

      ios_base::sync_with_stdio(0);
      cin.tie(0);
      cout.tie(0);
        //memset(dp,-1,sizeof dp);
        cin>>n;
        int j=1;
        for(int i=1;i<=n;i++){
            cin>>a[i]>>b[i];
            int gg=j;
            for(int k=a[i];k<=b[i];k++)
            {
                m[j]=gg; d[j]=k;
                j++;
            }

        }
        n=j;


        cout<<f(1,0)-1<<endl;



    }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...