hdoj-4989-Summary
2016-07-21 21:43
246 查看
Description
Small W is playing a summary game. Firstly, He takes N numbers. Secondly he takes out every pair of them and add this two numbers, thus he can get N*(N - 1)/2 new numbers. Thirdly he deletes the repeated number of the new numbers. Finally he gets the sum of the left numbers. Now small W want you to tell him what is the final sum.
Input
Multi test cases, every case occupies two lines, the first line contain n, then second line contain n numbers a 1, a 2, ……a n separated by exact one space. Process to the end of file.
[Technical Specification]
2 <= n <= 100
-1000000000 <= a i <= 1000000000
Output
For each case, output the final sum.
Sample Input
4
1 2 3 4
2
5 5
Sample Output
25
10
Hint
Firstly small W takes any pair of 1 2 3 4 and add them, he will get 3 4 5 5 6 7. Then he deletes the repeated numbers, he will get 3 4 5 6 7, Finally he gets the sum=3+4+5+6+7=25.
就是一个序列,和除了后面的每个数求和,然后组成一个新的序列,然后再去重,然后再求和,暴力开干
Small W is playing a summary game. Firstly, He takes N numbers. Secondly he takes out every pair of them and add this two numbers, thus he can get N*(N - 1)/2 new numbers. Thirdly he deletes the repeated number of the new numbers. Finally he gets the sum of the left numbers. Now small W want you to tell him what is the final sum.
Input
Multi test cases, every case occupies two lines, the first line contain n, then second line contain n numbers a 1, a 2, ……a n separated by exact one space. Process to the end of file.
[Technical Specification]
2 <= n <= 100
-1000000000 <= a i <= 1000000000
Output
For each case, output the final sum.
Sample Input
4
1 2 3 4
2
5 5
Sample Output
25
10
Hint
Firstly small W takes any pair of 1 2 3 4 and add them, he will get 3 4 5 5 6 7. Then he deletes the repeated numbers, he will get 3 4 5 6 7, Finally he gets the sum=3+4+5+6+7=25.
就是一个序列,和除了后面的每个数求和,然后组成一个新的序列,然后再去重,然后再求和,暴力开干
#include<cstdio> #include<cstring> #include<iostream> #include<set> #include<algorithm> using namespace std; typedef long long ll; set<ll>s; int main() { int n; ll a[105]; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) scanf("%lld",&a[i]); s.clear(); for(int i=0;i<n;i++) for(int j=i+1;j<n;j++) { ll sum=a[i]+a[j]; //printf(" %d\n",sum); s.insert(sum); } ll val=0; set<ll>::iterator it; for(it=s.begin();it!=s.end();it++) { //cout<<*it<<endl; val+=*it; } printf("%lld\n",val); }
相关文章推荐
- 百练:简单的整数划分问题(经典dp)
- Install Sogou IM 2.0 in Ubuntu14.04+/Xfce
- 广播
- 设fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项错误的是:不可以在原有内容后追加写
- Pasha and Stick
- POJ 1190 生日蛋糕
- log4j.properties 详解与配置步骤
- 网站中图片的相对路径与绝对路径
- 如何使用和了解ALTERA的IP核
- 【转载】关于Python中的yield
- Codeforces Round #304 (Div. 2) D 线性筛
- MySQL学习笔记二
- win8.1配置java环境
- 【codeforces】Restaurant
- windows下nginx 的安装配置
- The Text Splitting
- PAT-B 1020.月饼
- POJ 1724 ROADS
- 查看 jvm Xss 命令
- C语言实现面向对象