提交时间:2023-08-14 11:57:39

运行 ID: 98065

#include <bits/stdc++.h> #define N (int)(2e5+2) #define ll long long using namespace std; int n, cnt, opt=2, sum[N], t[10]; ll ans, a[N]; inline void read(int pos) { char c; int s = 0; ll ret = 0; for(c=getchar(); c==' '||c=='\n'; c=getchar()); for(; c!=' '&&c!='\n'; c=getchar()) { s += c-'0'; ret = (ret<<3)+(ret<<1)+c-'0'; if(c > '4') opt = 1; } sum[pos] = s; a[pos] = ret; } inline int f(ll x) { int ret = 0; while(x != 0) { ret += x%10; x /= 10; } return ret; } int main() { // freopen("function.in", "r", stdin); // freopen("function.out", "w", stdout); scanf("%d", &n); for(register int i=1; i<=n; i++) read(i); if(opt == 1) { for(register int i=1; i<=n; i++) { if(a[i] > 9) { opt = 0; break; } } } if(opt == 0) { for(register int i=1; i<=n; i++) { for(register int j=1; j<=n; j++) ans = ans+f(a[i]+a[j]); } } else if(opt == 1) { for(register int i=1; i<=n; i++) { ans = ans+a[i]*(n<<1); t[a[i]]++; } for(register int i=9; i>=1; i--) { cnt = 0; for(register int j=9; j>=10-i; j--) cnt += t[j]; ans = ans-(ll)t[i]*cnt*9; } } else { for(register int i=1; i<=n; i++) ans = ans+(ll)sum[i]*(n<<1); } printf("%lld\n", ans); return 0; }