交流的喜悦(用高精度思维解题)
2024-08-26 16:39:30
发布于:广东
时间限制: 1000ms
空间限制: 262144kB
题目描述
时间:1s 空间:256M
题目描述:
有n个人,每个人都拥有一个喜悦值,接下来,任意三个人之间会进行一次交流,任意三个人交流所获得的贡献为三个人的喜悦值的和,求任意三个人交流所获得的贡献之和。
输入格式:
第一行一个整数n
接下来n行,每行一个整数a,表示第i个人的喜悦值
输出格式:
按题目描述输出
样例输入1:
3
2
3
4
样例输出1:
9
约定:
n<=1000
1<=a<=10^100
附上本人WA的代码,(灬ꈍ ꈍ灬)
#include<iostream>
#include<cstring>
using namespace std;
int n,x;
int c[100001];
int main(){
cin>>n;
int lenc=0;
for(int i=0;i<n;i++){
char s[1005];
cin>>s;
int len=strlen(s);
for(int i=0;i<len;i++){
c[len-i]+=s[i]-'0';
}
for(int i=1;i<=lenc;i++){
c[i+1]+=c[i]/10;
c[i]%=10;
}
while(c[lenc+1]>0) lenc++;
}
for(int i=1;i<=lenc;i++) c[i]*=(n-1);
for(int i=1;i<=lenc;i++){
c[i+1]+=c[i]/10;
c[i]%=10;
}
while(c[lenc+1]>0) lenc++;
while(c[lenc]==0&&lenc>1) lenc--;
for(int i=lenc;i>=1;i--){
cout<<c[i];
}
return 0;
}
求大佬排错,并提供思路,谢谢!
这里空空如也
有帮助,赞一个