比赛 “Asm.Def战记之拉格朗日点”杯 评测结果 AAAAAAAAAA
题目名称 Asm.Def找燃料 最终得分 100
用户昵称 fyb 运行时间 0.023 s
代码语言 C++ 内存使用 0.23 MiB
提交时间 2015-11-04 08:47:29
显示代码纯文本
  1. #include <cstdio>
  2.  
  3. using namespace std;
  4.  
  5. #define NMAX 100
  6.  
  7. int x[NMAX],y[NMAX];
  8.  
  9. bool is_on_line(int p0,int p1,int p){
  10. // printf("%d %d %d %d\n",p0+1,p1+1,p+1,((y[p]-y[p0])*(x[p1]-x[p0])-(x[p]-x[p0])*(y[p1]-y[p0])));
  11. return ((y[p]-y[p0])*(x[p1]-x[p0])==(x[p]-x[p0])*(y[p1]-y[p0]));
  12. }
  13.  
  14. int main(){
  15. int n;
  16. int num,mx=1;
  17. int i,j,k;
  18.  
  19. freopen("asm_fuel.in","r",stdin);
  20. freopen("asm_fuel.out","w",stdout);
  21.  
  22. scanf("%d",&n);
  23. for(i=0;i<n;i++)
  24. scanf("%d%d",x+i,y+i);
  25.  
  26. for(i=1;i<n;i++)
  27. if(x[i-1]==x[i]&&y[i-1]==y[i])mx++;
  28.  
  29. for(i=0;i<n;i++)
  30. for(j=i+1;j<n;j++){
  31. if(x[i]==x[j]&&y[i]==y[j])continue;
  32. num=0;
  33. for(k=0;k<n;k++)
  34. if(is_on_line(i,j,k))num++;
  35. // if(num==6)printf("%d %d\n",i,j);
  36. if(num>mx)mx=num;
  37. }
  38.  
  39. printf("%d\n",mx);
  40. return 0;
  41. }
  42.