# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
42614 | fefe | Boat (APIO16_boat) | C++14 | 427 ms | 5372 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#define MAX_N 505
#define mod 1000000007LL
#define pb push_back
typedef long long LL;
using namespace std;
struct node{
LL s,e;
}arr[MAX_N];
LL n,ans,inv[3*MAX_N];
LL t[3*MAX_N][MAX_N],sum[3*MAX_N][MAX_N],ss[MAX_N];
vector<LL> X,lst;
LL Pow(LL x,LL y){
if(y==0) return 1;
if(y==1) return x;
LL z=pow(x,y/2);
z*=z;z%=mod;
if(y%2) z*=x;
z%=mod;
return z;
}
int main(){
LL i,j,k,s,e,x,y,S,E,cnt,p;
scanf("%lld",&n);
for(i=1;i<=n;i++){
scanf("%lld %lld",&arr[i].s,&arr[i].e);
X.pb(arr[i].s);X.pb(arr[i].e);
}
for(i=1;i<=1000;i++) inv[i]=Pow(i,mod-2);
sort(X.begin(),X.end());X.erase(unique(X.begin(),X.end()),X.end());
LL sz=X.size();
for(i=0;i<=n;i++) sum[0][i]=1;
for(i=1;i<=sz;i++){
s=X[i-1];
if(i-sz) e=X[i]-1;
else e=X[i-1];
lst.resize(0);
for(j=1;j<=n;j++){
if(arr[j].s>e || arr[j].e<s);
else lst.pb(j);
}
p=e-s+1;
y=lst.size();
for(k=0;k<=y;k++){
for(j=0;j<=y;j++) t[k][j]=0;
}
for(k=0;k<y;k++) t[1][k]=sum[i-1][lst[k]-1];
if(p!=1){
for(k=2;k<y;k++){
ss[0]=(p*t[k-1][0])%mod;
for(j=1;j<y;j++) ss[j]=(ss[j-1]+p*t[k-1][j]%mod)%mod;
for(j=k-1;j<y;j++){
if(k>p) t[k][j]=0;
else t[k][j]=((ss[j-1]*(p-k+1))%mod*inv[k])%mod;
}
}
}
for(j=0;j<y;j++){
ss[j]=0;
for(k=0;k<=y;k++) ss[j]=(ss[j]+t[k][j])%mod;
}
sum[i][0]=1;
x=0;
for(j=1;j<=n;j++){
sum[i][j]=(sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+mod)%mod;
if(x!=y && lst[x]==j){
sum[i][j]=(sum[i][j]+ss[x])%mod;
x++;
}
}
}
printf("%lld\n",(sum[sz][n]-1+mod)%mod);
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... |