Submission #82404

#TimeUsernameProblemLanguageResultExecution timeMemory
82404AngelKnowsCalvinball championship (CEOI15_teams)C++14
20 / 100
108 ms66560 KiB
#include <bits/stdc++.h> using namespace std; #define FOR(i,n) for (int i=1;i<=n;i++) #define REP(i,a,b) for (int i=a;i<=b;i++) #define pb push_back #define fi first #define se second #define pi pair<int,int> #define mp make_pair #define sz(x) ((int)(x).size()) typedef long long ll; const int inf=0x3f3f3f3f; const ll linf=1e18; const int N=10000+1; const double eps=1e-5; const int mo=1e9+7; int n; int a[N]; ll g[N][N]; ll f[N][N]; ll dp[N]; int pre; int tot; ll ans; int main() { std::ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); scanf("%d",&n); FOR(i,n) scanf("%d",&a[i]); FOR(i,n) g[i][0]=1; FOR(i,n) FOR(j,n) { g[i][j]=(ll)g[i][j-1]*i%mo; } FOR(i,n) f[0][i]=f[1][i]=1; REP(i,2,n) FOR(j,n) { f[i][j]=((ll)f[i-1][j+1]%mo+(ll)j*f[i-1][j]%mo)%mo; } FOR(i,n) { pre=tot; tot=max(tot,a[i]); if (a[i]>1) { if (tot==pre) FOR(j,n-i+1) dp[i]+=(ll)(a[i]-1)*g[tot][j-1]%mo*f[n-i-j+1][tot+1]%mo,dp[i]%=mo; else { FOR(j,n-i+1) dp[i]+=(ll)(a[i]-1)*g[pre][j-1]%mo*f[n-i-j+1][tot]%mo,dp[i]%=mo; } } //cout<<dp[i]<<endl; ans+=dp[i]; ans%=mo; } ans=(ans+1)%mo; printf("%d\n",ans); return 0; }

Compilation message (stderr)

teams.cpp: In function 'int main()':
teams.cpp:61:19: warning: format '%d' expects argument of type 'int', but argument 2 has type 'll {aka long long int}' [-Wformat=]
  printf("%d\n",ans);
                   ^
teams.cpp:37:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&n);
     ~~~~~^~~~~~~~~
teams.cpp:38:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     FOR(i,n) 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...