Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
173099 杜智真 交流 C++ 无测评数据 0 0 MS 0 KB 1318 2024-08-20 21:15:17

Tests(0/0):


#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; }