提交时间:2023-10-11 00:32:07
运行 ID: 106314
#include<bits/stdc++.h> using namespace std; string f[1001]; int n,a[5005],s[5005],r[5005],lena,lens,lenr; void jias(int a[]) { lens=max(lens,lenr); for(int i=1;i<=lens;i++) { s[i]+=r[i]; if(s[i]>=10) { s[i+1]+=s[i]/10; s[i]%=10; } } if(s[lens+1]) lens++; while(!s[lens]&&lens>1) lens--; } void jiar(string a1) { lena=a1.length(); for(int i=1;i<=lena;i++) a[i]=a1[lena-i]-48; lenr=max(lenr,lena); for(int i=1;i<=lenr;i++) { r[i]+=a[i]; if(r[i]>=10) { r[i+1]+=r[i]/10; r[i]%=10; } } if(r[lenr+1]) lenr++; while(!r[lenr]&&lenr>1) lenr--; } void jian(string a1) { lena=a1.length(); for(int i=1;i<=lena;i++) a[i]=a1[lena-i]-48; lenr=max(lenr,lena); for(int i=1;i<=lenr;i++) { if(r[i]<a[i]) { r[i+1]--; r[i]+=10; } r[i]-=a[i]; } while(!r[lenr]&&lenr>1) lenr--; } void dfs(int step,int k) { if(step==3) { jias(r); return; } for(int i=k;i<=n;i++) { jiar(f[i]); dfs(step+1,i+1); jian(f[i]); } } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>f[i]; dfs(0,1); for(int i=lens;i>=1;i--) cout<<s[i]; return 0; }