Submission #63165

#TimeUsernameProblemLanguageResultExecution timeMemory
63165khsoo01Calvinball championship (CEOI15_teams)C++11
100 / 100
471 ms1348 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; const ll N = 10005, mod = 1e6+7; ll n, a[N], mx[N], dt[2][N]; int main() { scanf("%lld",&n); for(ll i=1;i<=n;i++) { scanf("%lld",&a[i]); mx[i] = max(mx[i-1], a[i]); dt[n%2][i] = 1; } ll ans = a[n]; for(ll i=n-1;i>=1;i--) { for(ll j=1;j<=i;j++) { dt[i%2][j] = (dt[1-i%2][j] * j + dt[1-i%2][j+1]) % mod; } for(ll j=1;j<a[i];j++) { ans = (ans + dt[i%2][max(mx[i-1], j)]) % mod; } } printf("%lld\n",ans); }

Compilation message (stderr)

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