Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
98110 | lgh | 早凉的函数2 | C++ | 运行出错 | 20 | 880 MS | 1048 KB | 1198 | 2023-08-14 12:18:37 |
#include <bits/stdc++.h> using namespace std; #define ll long long const int maxn=100010; ll a[maxn]; ll F(ll x) { ll sum=0; while(x) sum+=x%10,x/=10; return sum; } bool flag; ll func(ll x) { ll sum=0; while(x) { if(x%10>4) flag=0; sum+=x%10,x/=10; } return sum; } int f[maxn]; ll ans; int n; int main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); cin>>n; if(n<=5000) { for(int i=1; i<=n; i++) cin>>a[i]; for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) ans+=F(a[i]+a[j]); cout<<ans<<'\n'; return 0; } ll maxx=-1; for(int i=1; i<=n; i++) cin>>a[i],maxx=max(maxx,a[i]); if(maxx<=9) { int buc[15]={0},g[11][11]; memset(g,0,sizeof(g)); for(int i=1; i<=n; i++) buc[a[i]]++; for(int i=1; i<=9; i++) for(int j=1; j<=9; j++) g[i][j]=(i+j)>=10?i+j-9:i+j; for(int i=1; i<=9; i++) ans+=buc[i]*(buc[i]-1)*g[i][i]; for(int i=1; i<=9; i++) for(int j=1; j<i; j++) ans+=buc[i]*buc[j]*2*g[i][j]; cout<<ans<<'\n'; return 0; } flag=1; for(int i=1; i<=n; i++) f[i]=func(a[i]); if(flag) { for(int i=1; i<=n; i++) ans+=f[i]; ans*=(n+1); cout<<ans<<'\n'; return 0; } return 0; }