提交时间:2023-08-14 12:23:59
运行 ID: 98156
#include<bits/stdc++.h> #define int long long using namespace std; inline int read() { int f=1,x=0; char c=getchar(); while(c>'9'||c<'0') { if(c=='-') f*=-1; c=getchar(); } while(c>='0'&&c<='9') { x=x*10+c-'0'; c=getchar(); } return x*f; } const int N=2e5+7; int g[20][10],ans,a[N]; int n; signed main() { n=read(); if(n<=5000) { for(int i=1;i<=n;i++) { a[i]=read(); for(int j=1;j<=i;j++) { int now=a[i]+a[j]; while(now) { ans+=now%10; if(i!=j) ans+=now%10; now/=10; } } } printf("%lld\n",ans); return 0; } for(int i=1;i<=n;i++) { a[i]=read(); int now=a[i]; for(int j=1;j<=16;j++) { int x=now%10; g[j][x]++; now/=10; } } for(int i=1;i<=n;i++) { for(int j=1;j<=16;j++) { int x=a[i]%10; a[i]/=10; for(int k=0;k<=9;k++) { if(x+k<10) { ans+=(x+k)*g[j][k]; } else { ans+=g[j][k]+((x+k)%10)*g[j][k]; } } } } printf("%lld\n",ans); return 0; }