提交时间:2023-10-11 13:20:51
运行 ID: 106344
#include<bits/stdc++.h> using namespace std; string f1[1001]; int n,s[5005],f[1001][5005],lens,lenf[1001]; void add(int f[],int lenf) { lens=max(lens,lenf); for(int i=1;i<=lens;i++) { s[i]+=f[i]; if(s[i]>=10) { s[i+1]++; s[i]%=10; } } if(s[lens+1]) lens++; while(!s[lens]&&lens>1) lens--; } void times(string f1,int f[],int& lenf) { lenf=f1.length(); for(int i=1;i<=lenf;i++) f[i]=f1[lenf-i]-48; for(int i=1;i<=lenf;i++) { f[i]*=(n-1)*(n-2)/2; if(f[i]>=10) { f[i+1]+=f[i]/10; f[i]%=10; } } if(f[lenf+1]) lenf++; while(!f[lenf]&&lenf>1) lenf--; } int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>f1[i]; times(f1[i],f[i],lenf[i]); add(f[i],lenf[i]); } for(int i=lens;i>=1;i--) cout<<s[i]; return 0; }