林士钧
(林士钧)
1
交流的喜悦
Problem ID: 7716
Contest ID: 4308
必做题
Wrong Answer
时间:1s 空间:256M
题目描述:
有n个人,每个人都拥有一个喜悦值,接下来,任意两个人之间会进行一次交流,任意两个人交流所获得的贡献为两个人的喜悦值的和,求任意两个人交流所获得的贡献之和
输入格式:
第一行一个整数n
接下来n行,每行一个整数a,表示第i个人的喜悦值
输出格式:
按题目描述输出
样例输入1:
3
2
3
4
样例输出1:
18
约定:
n<=1000
1<=a<=10^100
提示:
2 个赞
tyx
(༺༺■̵̶̸̸̴̴̷̩͎̬͍̙͎͕͎̩͍͇̜͍̯̖͎̙͓̪͎͓̜̟͖͈̩͈̜̮̝̠̫̠͉̘̳̳̦͈͇̖͓̩͙̩̤͇̠̠̣͔͕̲͍̪̮̥̗̦͍͇͍͖̟͔͔̲̜̗̱̤̲̤̱̝̟͇̖͔̮͙̣͚̗̣̤̱͇͖̪͚͉̜̫̤̮͎̖̥͙̜̖̞̥͔͍̳͙̉̃̀͑͗͋̾̔̓̄̆̐̾͊̐̀̆̆̋̎̂̓̈̆̑͋͛̐̍̾̎͐̈́͋̌̾̓̌̂̿͗̂̂͗̊̇͛̾̋͂͒̉̿̾̽͛̈́̍̋͗̐͒͂̊̾͒̃̎̇͐̎̇́̅̈́͂̋̑͒́̓͆̅̓͌͗͋̏͒̽̒̉̂̔̒͆̊̐̀̈́̀͒̽̚̚ͅͅ҉再见,匹诺康尼_C++CodeIkun༻༻)
3
#include<bits/stdc++.h>
using namespace std;
string s;
int n;
int a[1005][10005],c[1000005];
int lenlen[3];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s;
lenlen[2]=s.size();
for(int j=0;j<lenlen[2];j++){
a[lenlen[2]-j][i]=s[j]-'0';
}
lenlen[1]=max(lenlen[1],lenlen[2])+1;
for(int j=1;j<=lenlen[1];j++){
c[j]+=a[j][i];
}
for(int j=1;j<=lenlen[1];j++){
c[j+1]+=c[j]/10;
c[j]%=10;
}
}
for(int i=1;i<=lenlen[1];i++){
c[i-1]*=(n-1);
}
for(int j=1;j<=lenlen[1];j++){
c[j+1]+=c[j]/10;
c[j]%=10;
}
while(c[lenlen[1]]==0&&lenlen[1]>1){
lenlen[1]--;
}
for(int i=lenlen[1];i>=1;i--) cout<<c[i];
return 0;
}
高精×于+的水题
2 个赞
白桐吉
(■ ꧁༻残缺ぁ神迹々龙つ随风༻꧂)
4
#include <bits/stdc++.h>
using namespace std;
string s[1005];
char c[1005], ans[1005];
int a[100100];
int main() {
int n;
cin >> n;
int tmp = 0;
int lenc = 0;
for(int i = 1; i <= n; i++) {
cin >> s[i];
int len = s[i].size();
for(int j = 0; j < len; j++) {
a[len - j] += s[i][j] - '0';
}
for(int j = 1; j <= lenc; j++) {
a[j + 1] += a[j] / 10;
a[j] %= 10;
}
while(a[lenc + 1]) {
lenc++;
}
}
for(int i = 1; i <= lenc; i++) {
a[i] *= (n - 1);
}
for(int i = 1; i <= lenc; i++) {
a[i + 1] += a[i] / 10;
a[i] %= 10;
}
while(a[lenc + 1]) {
lenc++;
}
while(a[lenc] == 0 && lenc > 1) {
lenc--;
}
for(int i = lenc; i >= 1; i--) {
cout << a[i];
}
return 0;
}
2 个赞