cf 849B
来源:互联网 发布:java string类源码分析 编辑:程序博客网 时间:2024/06/18 18:40
题目大意:判断所有点能否在两条相互平行的直线上。做法:枚举K,计算前三个点两两之间的斜率,真实值定在三者中的一个,然后一个一个判断。(枚举k,暴力排查)
//codeforces 849B
#include <stdio.h>
#include <algorithm>
#include <string>
#include <string.h>
using namespace std;
const int maxn=1005;
int y[maxn];
int n;
bool check(double k)
{
int flag=0,spot=-1;
for(int i=2;i<=n;i++)
{
if((y[i]-y[1])==k*(i-1)) continue; //说明满足假设斜率,继续检索
flag=1;//说明有了两条直线
if(spot==-1) spot=i; //第二条直线的第一个点
else if((y[i]-y[spot])!=k*(i-spot))
{
flag=0;
break;
}
}
if(flag) return true;
else return false;
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
memset(y,0,sizeof(y));
for(int i=1;i<=n;i++)
scanf("%d",&y[i]);
double k1=(y[2]-y[1])*1.0;
double k2=(y[3]-y[1])*0.5;
double k3=(y[3]-y[2])*1.0;
if(check(k1)||check(k2)||check(k3))
printf("Yes\n");
else printf("No\n");
}
return 0;
}
- cf 849B
- cf-B
- cf B
- CF 1B Spreadsheet
- CF 3B Lorry
- CF 176B
- CF 91B
- cf 131 DIV2 B
- CF 113B || CF196D
- CF 126B
- CF-236B
- CF 254B(日期)
- cf 79B
- CF - 158B - Taxi
- CF 296B
- CF 173(div2) B
- cf:B-QR code
- cf 1B. Spreadsheets
- Codeforces Round #431 (Div. 2) From Y to Y
- Codeforces Tell Your World
- 【codevs 1036】商务旅行
- Guava Cache使用笔记
- git 如何正确的提交文件
- cf 849B
- 欢迎使用CSDN-markdown编辑器
- git 使用详细介绍
- 快速排序及c++实现
- 大话设计模式之一:如何在visual studio 中建立C#程序
- 绑定开发者-小程序开发设置2-微信小程序开发-视频教程9
- 应用环境下的TIME_WAIT和CLOSE_WAIT
- spring AOP
- shell之循环语句结构