您的位置:首页 > 其它

CF224 div2 (C) CF226 div2 (C)

2015-06-01 19:35 225 查看
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <string>
#include <vector>
#include <queue>    //CF224 div2 (C)
#define long long LL
#define N 100100
#define inf 999999999
using namespace std;
/*
插入一个数,使得一个序列的数等差排列,由小到大输出这个可能的数
*/
int a
;
int main()
{
int n, t, j, d, k;
while(scanf("%d", &n)!=EOF)
{
for(t=1, d=inf; t<=n; ++t)
scanf("%d", a+t);
sort(a+1, a+n+1);
for(t=2, d=inf; t<=n; ++t)
{
if(a[t]-a[t-1]<d)
d=a[t]-a[t-1];
}
if(n==1)
{
printf("-1\n");
continue;
}
if(n==2)
{
if((d%2==0)&&d!=0)
{
printf("3\n");
printf("%d %d %d\n", a[1]-d, a[1]+d/2, a[2]+d);
}
else
{
if(d==0)
{
printf("1\n");
printf("%d", a[1]);
}
else
{
printf("2\n");
printf("%d %d\n", a[1]-d, a[2]+d);
}
}
continue;
}
if(n>=3)
{
for(t=2, j=0; t<=n; ++t)
{
if(a[t]-a[t-1]!=d)
{
k=t;
j++;
}
}
if(j>=2)
{
printf("0\n");
continue;
}
if(j==1)
{
if(a[k]-a[k-1]==2*d)
{
printf("1\n");
printf("%d\n", a[k-1]+d);
}
else printf("0\n");
continue;
}
if(j==0)
{
if(d!=0)
{
printf("2\n");
printf("%d %d\n", a[1]-d, a
+d);
}
else
{
printf("1\n");
printf("%d", a[1]);
}
}
}
}
return 0;
}


#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <string>
#include <vector>
#include <queue> //CF226 div2 (C) 素数筛选(并且在里面求和)
#define LL long long
#define N 10000010 //可以开一千万的数组,题目中空间限制为512M
using namespace std;
int a
, vis
, s
;
/*
题意:
输入一些数,然后输入范围,求在这范围内的素数能被输入的数整除的个数总和
*/
int main()
{
int n, m, t, j, k, max1, l, r;
while(scanf("%d", &n)!=EOF)
{
for(t=max1=0; t<n; ++t)
{
scanf("%d", &k);
if(k>max1)
max1=k;
a[k]++;
}
for(j=2; j<=max1; ++j)
{
if(vis[j])continue; //不是素数
for(t=j; t<=max1; t+=j) //j是素数的话,则在其基础上求输入的数中是否存在能整除其的数
{
if(a[t])
s[j]+=a[t];
vis[t]=1;
}
}
for(t=3; t<=max1; ++t)
{
s[t]+=s[t-1]; //累加
}
scanf("%d", &m);
while(m--)
{
scanf("%d%d", &l, &r);
if(l>=max1)
{
if(l>max1)printf("0\n");
else printf("%d\n", s[max1]-s[max1-1]);
}
else if(r>=max1)
{
printf("%d\n", s[max1]-s[l-1]);
}
else printf("%d\n", s[r]-s[l-1]);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: