Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
98110 lgh 早凉的函数2 C++ 运行出错 20 880 MS 1048 KB 1198 2023-08-14 12:18:37

Tests(10/14):


#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; }


测评信息: