Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
98350 | CSYZCaoMY | 早凉的函数2 | C++ | 通过 | 100 | 354 MS | 3380 KB | 895 | 2023-08-14 15:46:40 |
#include<bits/stdc++.h> using namespace std; long long a[200005],b[200005]; long long num(long long x){ long long ret=0; while(x){ ret+=x%10; x/=10; } return ret; } int main(){ int n; scanf("%d",&n); long long ans=0,sum=0; for(int i=1;i<=n;i++) scanf("%lld",&a[i]),ans+=num(a[i]); ans=2*n*ans; for(long long i=10;i<=(long long)1e15;i*=10){ for(int j=1;j<=n;j++) b[j]=a[j]%i; sort(b+1,b+n+1); b[n+1]=(long long)1e15+1; for(int j=1;j<=n;j++){ int l=1,r=n+1; while(l<r){ int mid=(l+r)>>1; if(b[mid]+b[j]>=i) r=mid; else l=mid+1; } sum+=(n-l+1); } } ans-=9*sum; printf("%lld",ans); return 0; }/* Samples 1: Input: 5 123 456 789 101 112 Output: 321 */