Submission #22585

#TimeUsernameProblemLanguageResultExecution timeMemory
22585past future present (#40)Unifying Values (KRIII5_UV)C++14
0 / 7
3 ms2392 KiB
#include <cstdio> #include <algorithm> #include <vector> using namespace std; typedef long long ll; const ll mod = 1000000007; int n; ll a[10101]; ll sum[101010]; ll ans; ll p[10101]; int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%lld",&a[i]); sum[i] = sum[i-1] + a[i]; } for(int i=1;i<n;i++){ ll x = sum[i]; if(sum[n]/x*x != sum[n])continue; vector<ll> v; fill(p,p+n+1,0); v.push_back(1); for(int j=i+1;j<=n;j++){ if(sum[j]/x*x == sum[j]){ ll t = sum[j]/x; if(t>1)v.push_back(t); } } p[0]=1; for(auto t : v){ p[t]+=p[t-1]; p[t]%=mod; } ans+=p[v.back()]; ans%=mod; } printf("%lld\n",ans); }

Compilation message (stderr)

UV.cpp: In function 'int main()':
UV.cpp:13:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&n);
                   ^
UV.cpp:15:28: 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...