Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
98155 | CSYZ_YangXY | 早凉的函数2 | C++ | 解答错误 | 80 | 845 MS | 4968 KB | 1571 | 2023-08-14 12:23:57 |
#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 */