Submission #23568

#TimeUsernameProblemLanguageResultExecution timeMemory
23568repeatingBoat (APIO16_boat)C++11
0 / 100
1806 ms524288 KiB
#include <bits/stdc++.h> #define F first #define S second #define P push #define pb push_back #define MEM(dp,i) memset(dp,i,sizeof(dp)) #define W while #define R return #define C continue #define SI size() #define ll long long #define pll pair<ll,ll> #define SF(x) scanf("%I64d",&x) using namespace std; const long long INF = 2e9; long long MOD = 1e9+7; ll n; ll a[555]; ll b[555]; map<ll,ll>dp[555]; ll DP(ll x,ll last){ if(x==n)R 1; ll &ret=dp[x][max(a[x],last)]; if(ret)R ret-1; ret=DP(x+1,last); last=max(last,a[x]); if(last<=b[x]) ret+=DP(x,last+1); ret%=MOD; ret++; R ret-1; } int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>a[i]>>b[i]; } cout<<DP(0,1)-1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...