题目链接:http://codeforces.com/contest/714/problem/B

题意:给定一个长度为N的初始序列,然后问是否能找到一个值x,然后使得序列的每个元素+x/-x/不变,最后把序列变成各个元素都相等(序列每个元素只能进行操作一次)

思路:因为每个元素只能操作一次,而且操作的值只有一个值x。那么就可以发现当序列中存在3个以上的互不相等的数时一定不能构造要求的序列。 当序列存在3个一下的互补相同的数时,一定能构造要求的序列。现在要考虑的是刚刚有3个互不相同的序列时,把序列去重+排序后,如果数2-数1=数3-数2.则可以构造,否则不能构造。

#define _CRT_SECURE_NO_DEPRECATE
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
#include<queue>
#include<vector>
#include<time.h>
#include<cmath>
#include<set>
using namespace std;
typedef long long int LL;
const int MAX = + ;
int main(){
//#ifdef kirito
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
//#endif
int n,num;
while (~scanf("%d", &n)){
set<int>se;
for (int i = ; i < n; i++){
scanf("%d", &num); se.insert(num);
}
if (se.size()>){
printf("NO\n");
}
else if (se.size() == ){
vector<int>m;
for (set<int>::iterator it = se.begin(); it != se.end(); it++){
m.push_back(*it);
}
sort(m.begin(), m.end());
if (m[] - m[] == m[] - m[]){
printf("YES\n");
}
else{
printf("NO\n");
}
}
else{
printf("YES\n");
}
}
return ;
}

最新文章

  1. 关于PCA的几何表示——MATLAB实现
  2. Apache Commons fileUpload实现文件上传之一
  3. tty -s &amp;&amp; mesg n
  4. [Kinect]XBox One Kinect连接Windows
  5. 游戏中网络数据包和HTTP数据的思考
  6. Python之路-Linux命令基础(5)
  7. Source Insignt注册码
  8. iOS APP之间到跳转,以及热门应用,手机自带到应用跳转
  9. Spring整合quartz框架实现任务定时调度
  10. gradlew在Travis CI没可执行权限 permission denied
  11. SSD-Tensorflow: 3 步运行 TensorFlow 单图片多盒目标检测器
  12. CCS的文本及字体
  13. 用vue+element-ui开发后台笔记
  14. Spark On Yarn的两种模式yarn-cluster和yarn-client深度剖析
  15. oracle 11 g release 2 卸载
  16. awk 进阶,百万行文件取交集
  17. 步步为营-53-JavaScript
  18. 元素class的增、删、查、toggle
  19. dll注入到指定进程
  20. 【NOIP2018】保卫王国 动态dp

热门文章

  1. Session原理浅析
  2. 【linux】vim的一些快捷键
  3. iOS 日常工作之常用宏定义大全
  4. &#39;XCTest/XCTest.h&#39; file not found
  5. xmpp的bug
  6. 线段树(main函数自由)
  7. No space left on device you must specify the filesystem type--Linux重启挂在失败
  8. cf378C(模拟)
  9. [转]DB2类型转换函数
  10. [转]DB2时间类函数