Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
173099 | 杜智真 | 交流 | C++ | 无测评数据 | 0 | 0 MS | 0 KB | 1318 | 2024-08-20 21:15:17 |
#include <bits/stdc++.h> using namespace std; int a[5005],b[5005],a1[5005],a2[5005],c[5005],sa=0,sb=0,sc=0; void cinf(int a[],int &sa){ string st; cin >> st; for (int i=0;i<st.size();i++){ a[st.size()-i-1]=st[i]-'0'; } sa=st.size(); } void addf(int a[],int b[],int c[],int &sa){ for (int i=0;i<sa;i++){ if (a[i]+b[i]+c[i]>9){ c[i+1]+=1; c[i]=(a[i]+b[i]+c[i])%10; continue; } c[i]+=a[i]+b[i]; } if (c[sa]>0){ sa++; } } void mulityf(int a[],int b[],int c[],int &sa,int &sb){ int x=0; for (int i=0;i<sa;i++){ for (int j=0;j<sb;j++){ if (a[i]*b[j]+c[i+j]>9){ x=(a[i]*b[j])/10; c[i+j]=(a[i]*b[j]+c[i+j])%10; c[i+j+1]+=x; continue; } c[i+j]=a[i]*b[j]+c[i+j]; } } int s=-1; for (int i=(sa+sb)*(sa+sb);i>=0 and c[i]==0;i--){ s+=1; } sc=(sa+sb)*(sa+sb)-s; } void printff(int a[],int sa){ for (int i=sa-1;i>=0;i--){ cout << a[i]; } } void copyf(int a[],int n,int &sa){ int i=0; while (n!=0){ a[i]=n%10; n/=10; i+=1; } sa=i; } int main(){ int n,n2; cin >> n; for (int i=0;i<n;i++){ int k=0,o=0; cin >> k; copyf(a1,k,sa); addf(a1,a,a2,sa); swap(a2,a); memset(a2,0,sa); } n2=((n-1)*(n-2))/2; copyf(b,n2,sb); mulityf(a,b,c,sa,sb); printff(c,sc); return 0; }