http://codeforces.com/contest/382/problem/C

题意:给你n个数,然后让你添加一个数使得n+1个数能形成这样的规律,a[1]-a[0]=a[2]-a[1]=a[3]-a[2].....,问这样的数有多少个?输出出来。

 #include <cstdio>
#include <cstring>
#include <algorithm>
#include <map>
#define maxn 100001
using namespace std; int n;
int a[maxn];
int b[maxn]; int main()
{
while(scanf("%d",&n)!=EOF)
{
map<int,int>q;
int cnt=;
for(int i=; i<n; i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n);
if(n==)
{
printf("-1\n");
continue;
}
if(n==)
{
if((a[]+a[])%==)
{
int m=(a[]+a[])/-a[];
if((a[]+a[])/==a[])
{
printf("1\n");
printf("%d\n",a[]);
continue;
}
printf("%d\n",);
printf("%d %d %d\n",a[]-(a[]-a[]),a[]+m,a[]+m*);
}
else
{
printf("%d\n",);
int m=a[]-a[];
printf("%d %d\n",a[]-m,a[]+m);
}
continue;
}
if(n==)
{
int m1=a[]-a[];
int m2=a[]-a[];
if(m1>m2)
{
if(m1==m2*)
{
printf("%d\n",);
printf("%d\n",a[]+m2);
}
else
{
printf("0\n");
}
}
else if(m1<m2)
{
if(m2==m1*)
{
printf("%d\n",);
printf("%d\n",a[]+m1);
}
else
{
printf("0\n");
}
}
else if(m1==m2)
{
if(a[]==a[])
{
printf("1\n");
printf("%d\n",a[]);
continue;
}
printf("2\n");
printf("%d %d\n",a[]-m1,a[n-]+m1);
}
continue;
}
int k;
int max1=;
bool flag1=true;
for(int i=; i<n; i++)
{
int m=a[i]-a[i-];
if(m==)
{
flag1=false;
}
if(q[m]==)
{
q[m]=;
}
else
q[m]++;
if(q[m]>max1)
{
max1=q[m];
k=m;
}
}
if(!flag1)
{
if(k!=)
{
printf("0\n");
continue;
}
}
if(k==)
{
bool flag=true;
for(int i=; i<n; i++)
{
if(a[i]-a[i-]!=k)
{
flag=false;
printf("0\n");
break;
}
}
if(flag==true)
{
printf("1\n");
printf("%d\n",a[]);
}
}
else
{
int f=;
for(int i=; i<n; i++)
{
if(a[i]-a[i-]!=k)
{
if(f==)
{
f=;
printf("0\n");
break;
}
else if(f==)
{
f=;
if((a[i]+a[i-])%!=)
{
printf("0\n");
f=;
break;
}
else
{
if((a[i]+a[i-])/==a[i-]+k)
b[cnt++]=(a[i]+a[i-])/;
else
{
f=;
printf("0\n");
break;
}
}
}
}
}
if(f==)
{
b[cnt++]=a[]-k;
b[cnt++]=a[n-]+k;
}
if(f==) continue;
sort(b,b+cnt);
printf("%d\n",cnt);
for(int i=; i<cnt; i++)
{
if(i==)
printf("%d",b[i]);
else printf(" %d",b[i]);
}
printf("\n");
}
}
}

cf C. Arithmetic Progression的更多相关文章

  1. CF 1114 E. Arithmetic Progression

    E. Arithmetic Progression 链接 题意: 交互题. 有一个等差序列,现已打乱顺序,最多询问60次来确定首项和公差.每次可以询问是否有严格大于x的数,和查看一个位置的数. 分析: ...

  2. POJ3495 Bitwise XOR of Arithmetic Progression

    Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 772   Accepted: 175 Description Write ...

  3. CF刷题-Codeforces Round #481-D. Almost Arithmetic Progression

    题目链接:https://codeforces.com/contest/978/problem/D 题解: 题目的大意就是:这组序列能否组成等差数列?一旦构成等差数列,等差数列的公差必定确定,而且,对 ...

  4. Dirichlet's Theorem on Arithmetic Progression

    poj3006 Dirichlet's Theorem on Arithmetic Progressions 很显然这是一题有关于素数的题目. 注意数据的范围,爆搜超时无误. 这里要用到筛选法求素数. ...

  5. CF1114E Arithmetic Progression(交互题,二分,随机算法)

    既然是在CF上AC的第一道交互题,而且正是这场比赛让我升紫了,所以十分值得纪念. 题目链接:CF原网 题目大意:交互题. 有一个长度为 $n$ 的序列 $a$,保证它从小到大排序后是个等差数列.你不知 ...

  6. Find Missing Term in Arithmetic Progression 等差数列缺失项

    查找等差数列中的缺失项. e.g.Input: arr[] = {2, 4, 8, 10, 12, 14} Output: 6 Input: arr[] = {1, 6, 11, 16, 21, 31 ...

  7. BestCoder22 1002.NPY and arithmetic progression(hdu 5143) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5143 题目意思:给出 1, 2, 3, 4 的数量,分别为a1, a2, a3, a4,问是否在每个数 ...

  8. codeforces C. Arithmetic Progression 解题报告

    题目链接:http://codeforces.com/problemset/problem/382/C 题目意思:给定一个序列,问是否可以通过只插入一个数来使得整个序列成为等差数列,求出总共有多少可能 ...

  9. CF 567C Geometric Progression

    题目大意:输入两个整数 n 和 k ,接下来输入n个整数组成的序列.求该序列中三个数 满足条件的子串个数(要求字串由三个整数a,b,c组成,其中 c = k * b = k * k * a). 思路: ...

随机推荐

  1. 用bootstrap结合php搭建MIS系统框架【转载】

    bootstrap目前比较火,抽空简单了解一下 官方介绍:Bootstrap, from Twitter基于HTML,CSS,JAVASCRIPT的简洁灵活的流行前端框架及交互组件集 http://t ...

  2. 基于Visual C++2012拆解世界五百强面试题--题3

    请用C语言实现 输入N,打印N*N矩阵 比如 N = 3, 打印: 1 2 3 8 9 4 7 6 5 N = 4, 打印 1   2    3   4 12  13   14  5 11  16   ...

  3. [RxJS] Transformation operator: scan

    All of the combination operators take two or more observables as input. These operators may also be ...

  4. Django模型之Meta选项详解

    Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.而可用的选项大致包含以下几类 abstract 这个属性是定义当前的模型是不是一个抽象类.所谓抽象类是不会对应数据 ...

  5. Python之路【第十一篇】:CSS --暂无内容-待更新

    Python之路[第十一篇]:CSS --暂无内容-待更新

  6. ASP.NET 动态属性筛选和分页绑定

    分页控件为:AspNetPager.dll 我们先建立一个产品属性名称表 CREATE TABLE ProductAttr ( ,) NOT NULL primary key, [ParentID] ...

  7. 15、SQL Server 触发器

    SQL Server 触发器 触发器是一种特殊的存储过程,只有当试图用数据操作语言DML来修改数据时才会触发,DML包含对视图和表的增.删.改. 触发器分为DML触发器和DDL触发器,其中DML触发器 ...

  8. cocos2dx 的Hello world的简单分析

    Node之间的关系: 场景AppDelegate.cpp又要由导演去调用然后进行表演: // create a scene. it's an autorelease object auto scene ...

  9. Xcode升后插件失效

    Xcode升后插件失效,与添加插件不小心点击Skip Bundle解决办法 字数267 阅读4731 评论1 喜欢12 今天升级了xcode到6.4 发现之前装的插件不能使用了.这里有一个解决的方案: ...

  10. 【转】iOS25彩票 幸运转盘

    原文 : http://www.it165.net/pro/html/201409/21216.html 最终效果图: 各个view的关系图: 背景圆盘(需穴ky"http://www.it ...