提交时间:2023-08-14 12:23:57
运行 ID: 98155
#include<bits/stdc++.h>//60~80pts 出题人仁慈些吧 #define int long long using namespace std; int n; const int N=5e5+7; int a[N]; int f[N]; void baoli() { int sum=0; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { int aa=a[i]+a[j]; int val=0; while(aa) { val=val+aa%10; aa/=10; } sum+=val; } cout<<sum; return ; } signed main() { ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); cin>>n; int flag1=1,flag2=1; for(int i=1;i<=n;i++) { cin>>a[i]; int aa=a[i]; if(aa>9) flag1=0; while(aa) { if(aa%10>=5) flag2=0; f[i]=f[i]+aa%10; aa/=10; } } if(n<=5000) baoli(); else if(flag2) { int sum=0; for(int i=1;i<=n;i++) sum+=f[i]; cout<<n*2*sum; return 0; } else if(flag1) { sort(f+1,f+1+n); int sum=0,ans=0; for(int i=1;i<=n;i++) ans+=a[i]; for(int i=1;i<=n;i++) sum=sum+ans+a[i]*n; f[n+1]=1e18; for(int i=1;i<=n;i++) { int val=10-f[i]; int id=lower_bound(f+1,f+1+n+1,val)-f; if(id==n+1) continue; sum=sum-(n-id+1)*9; } cout<<sum; } return 0; } /* 5 123 456 789 101 112 6 1 1 4 1 4 7 2 7 8 9 4 2 3 */