Submission #1307264

#TimeUsernameProblemLanguageResultExecution timeMemory
1307264HoriaHaivasCalvinball championship (CEOI15_teams)C++20
30 / 100
414 ms968 KiB
#include<bits/stdc++.h> #define debug(x) cerr << #x << " " << x << "\n" #define debugs(x) cerr << #x << " " << x << " " #pragma GCC optimize("Ofast") #define int long long using namespace std; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); int range_rng(int l, int r) { return uniform_int_distribution<int>(l,r)(rng); } const int mod=1e6+7; int dp[2][10005][2]; int n; vector<int> v; void modit(int &x) { if (x>=mod) x-=mod; } int smaller(vector<int> &v)///il fac strict (cred) { int i,j,ans; dp[0][0][1]=1; for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { dp[i%2][j][0]=0; dp[i%2][j][1]=0; } for (j=1;j<=n;j++) { dp[i%2][j][0]+=(dp[(i-1)%2][j][0]*j)%mod; modit(dp[i%2][j][0]); dp[i%2][j][0]+=(dp[(i-1)%2][j-1][0]); modit(dp[i%2][j][0]); dp[i%2][j][0]+=(dp[(i-1)%2][j][1]*(v[i]-1))%mod; modit(dp[i%2][j][0]); if (v[i]<=j) dp[i%2][j][1]+=(dp[(i-1)%2][j][1]); if (v[i]==j) dp[i%2][j][1]+=(dp[(i-1)%2][j-1][1]); modit(dp[i%2][j][1]); } } ans=0; for(j=1;j<=n;j++) { ans+=dp[n%2][j][0]; modit(ans); } return ans; } signed main() { /* ifstream fin("arbore.in"); ofstream fout("arbore.out"); */ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int i,x; cin >> n; v.push_back(0); for (i=1;i<=n;i++) { cin >> x; v.push_back(x); } cout << (smaller(v)+1)%mod; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...