# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
154631 | TadijaSebez | Calvinball championship (CEOI15_teams) | C++11 | 975 ms | 632 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int mod=1e6+7;
int add(int x, int y){ x+=y;return x>=mod?x-mod:x;}
int mul(int x, int y){ return (ll)x*y%mod;}
const int N=10050;
int dp[N][2],tmp[N][2];
void CL(int a[N][2])
{
for(int i=0;i<N;i++) a[i][0]=a[i][1]=0;
}
int a[N];
int main()
{
int n;
scanf("%i",&n);
for(int i=1;i<=n;i++) scanf("%i",&a[i]);
CL(dp);
dp[1][1]=1;
for(int i=2;i<=n;i++)
{
for(int j=0;j<N;j++) tmp[j][0]=dp[j][0],tmp[j][1]=dp[j][1];
CL(dp);
for(int j=0;j<N-1;j++)
{
int ways=min(j,a[i]-1);
dp[j][0]=add(dp[j][0],mul(tmp[j][1],ways));
dp[j][0]=add(dp[j][0],mul(tmp[j][0],j));
if(a[i]<=j) dp[j][1]=add(dp[j][1],tmp[j][1]);
if(a[i]==j+1) dp[j+1][1]=add(dp[j+1][1],tmp[j][1]);
dp[j+1][0]=add(dp[j+1][0],tmp[j][0]);
if(a[i]>j+1) dp[j+1][0]=add(dp[j+1][0],tmp[j][1]);
}
}
int ans=1;
for(int j=0;j<N;j++) ans=add(ans,dp[j][0]);
printf("%i\n",ans);
return 0;
}
Compilation message (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... |
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |