会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
c语言源码
Codeforces Problem 51D - Geometrical problem
从前三个数中找到公比(最多去掉一个数),检查后面数是否满足等比
#include <stdio.h> #include <stdlib.h> #include <math.h> int in[100010]; int min(int a,int b){ return a>b?b:a; } int main(){ int i,j,k,n,p,ans; double d; scanf("%d",&n); for(i=1;i<=n;i++){ scanf("%d",&in[i]); } if(n==1){ printf("0\n"); return 0; } if(n==2){ if(!in[1] && in[2]) printf("1\n"); else printf("0\n"); return 0; } ans=2; for(i=1;i<=2;i++) for(j=i+1;j<=3;j++){ if(!in[i] && in[j]) continue; if(in[i]==0) d=0; else d=(double)in[j]/in[i]; p=j; int s=0; if(i!=1 || j!=2)s++; for(k=j+1;k<=n;k++) if(fabs(in[p]*d-in[k])<1e-9) p=k; else s++; ans=min(ans,s); } printf("%d\n",ans); return 0; }
posted on
2012-01-27 14:01
c语言源码
阅读(
144
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部
导航
博客园
首页
新随笔
联系
订阅
管理
公告