# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
549738 | krit3379 | Boat (APIO16_boat) | C++17 | 836 ms | 524288 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
#define N 505
long long dp[N][N][N],a[N],b[N],l[2*N],r[2*N],ans,mod=1e9+7;
vector<long long> v;
// num -> at i-th scholl -> with up_val
int main(){
int n,i,j,k;
scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%lld %lld",&a[i],&b[i]),v.push_back(a[i]),v.push_back(b[i]);
v.push_back(-1);
sort(v.begin(),v.end());
v.resize(unique(v.begin(),v.end())-v.begin());
v.push_back(v.back()+1);
for(i=1;i<=n;i++){
l[i]=lower_bound(v.begin(),v.end(),a[i])-v.begin();
r[i]=lower_bound(v.begin(),v.end(),b[i])-v.begin();
}
for(i=0;i<=n;i++)for(j=0;j<=n;j++)dp[0][i][j]=1;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
for(k=1;k<v.size();k++){
if(l[j]<=k&&k<=r[j])dp[i][j][k]=(dp[i][j][k]+dp[i-1][j-1][k-1]*(v[k+1]-v[k]))%mod;
dp[i][j][k]=(dp[i][j][k]+dp[i][j][k-1]+dp[i][j-1][k]-dp[i][j-1][k-1]+mod)%mod;
}
}
ans=(ans+dp[i][n][v.size()-1])%mod;
}
printf("%lld",ans);
return 0;
}
컴파일 시 표준 에러 (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... |