Submission #47971

#TimeUsernameProblemLanguageResultExecution timeMemory
47971ExtazyCalvinball championship (CEOI15_teams)C++17
70 / 100
16 ms5816 KiB
#include <bits/stdc++.h> #define endl '\n' using namespace std; const int N = 1007; const int MOD = (1e6) + 7; int n,a[N],pos,cnt,ans; bool used[N][N]; int state[N][N]; int recurse(int pos, int cnt) { if(pos>n) return 1; if(used[pos][cnt]) return state[pos][cnt]; used[pos][cnt]=true; return state[pos][cnt]=(recurse(pos+1,cnt+1)+recurse(pos+1,cnt)*1ll*cnt%MOD)%MOD; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int i; scanf("%d", &n); for(i=1;i<=n;i++) { scanf("%d", &a[i]); } ans=1; cnt=1; for(pos=2;pos<=n;pos++) { if(a[pos]>cnt) { ans+=recurse(pos+1,cnt)*1ll*cnt%MOD; ans%=MOD; ++cnt; } else { ans+=recurse(pos+1,cnt)*1ll*(a[pos]-1)%MOD; ans%=MOD; } } printf("%d\n", ans); return 0; }

Compilation message (stderr)

teams.cpp: In function 'int main()':
teams.cpp:25:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &n);
   ~~~~~^~~~~~~~~~
teams.cpp:27:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &a[i]);
     ~~~~~^~~~~~~~~~~~~
#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...