# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
23587 | 2017-05-12T18:08:25 Z | repeating | Boat (APIO16_boat) | C++11 | 246 ms | 524288 KB |
#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 int #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[505]; ll b[505]; vector<ll> dp[505]; ll DP(ll x,ll last){ if(x==n)R 1; if(last>b[x])R DP(x+1,last); ll p=DP(x+1,last); last=max(last,a[x]); ll &ret=dp[x][last-a[x]]; if(ret!=-1)R ret+p; ret=DP(x,last+1); ret%=MOD; R ret+p; } int main(){ cin>>n; for(int i=0;i<n;i++){ SF(a[i]); SF(b[i]); for(int j=a[i];j<=b[i];j++) dp[i].pb(-1); } cout<<(DP(0,1)-1)%MOD; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 2036 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 2036 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Memory limit exceeded | 246 ms | 524288 KB | Memory limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 2036 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |