Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
173556 B班-陈曦 交流 C++ 无测评数据 0 0 MS 0 KB 981 2024-08-20 21:29:11

Tests(0/0):


#include<bits/stdc++.h> using namespace std; const int MAX=1060; string ss[1060]; int a[MAX],b[MAX],c[MAX],sum[MAX],len; void Add(int a[],int s[],int len){ for(int j=0;j<len;++j){ s[j]+=a[j]; for(int i=j;s[i]>=10;++i){ s[i+1]++; s[i]-=10; } } } void Init(int a[],string str,int len){ for(int i=0;i<len;i++) a[len-i-1]=str[i]-'0'; } void Output(int s[]){ int i=MAX-1; for(;s[i]==0&&i>0;i--); for(;i>=0;i--) printf("%d",s[i]); printf("\n"); } void Mul(int o[],int p[],int q[]){ for(int i=0;i<MAX;++i){ for(int j=MAX-1;j>=0;--j) q[j+i]+=p[i]*o[j]; for(int k=0;k<MAX;++k) if(q[k]>=10){ q[k+1]+=q[k]/10; q[k]=q[k]%10; } } } int main() { int n; cin>>n; for(int i=0;i<n;i++){ cin>>ss[i]; int x[MAX]={0}; Init(x,ss[i],ss[i].size()); Add(x,sum,ss[i].size()); } int k=(n-1)*(n-2)>>1; for(int i=0;k!=0;i++){ b[i]=k%10; k/=10; } Mul(sum,b,c); Output(c); return 0; }