a53

coliniare

a53
Jan 22nd, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. #include <cstdio>
  2. #include <cmath>
  3. using namespace std;
  4. int maxim,n,i,j,x[1001],y[1001],poz,d1,a,b,c,k,a1,b1,c1;
  5. short int viz[50000000];
  6.  
  7. int cmmdc(int u,int v,int w)
  8. {
  9. int r,d;
  10. if(v<0)v=-v;
  11. if(w<0)w=-w;
  12. if(u==0)d=v;
  13. else if(v==0)d=u;
  14. else
  15. {
  16. r=u%v;
  17. while(r!=0)
  18. {
  19. u=v;
  20. v=r;
  21. r=u%v;
  22. }
  23. d=v;
  24. }
  25. r=w%d;
  26. while(r!=0)
  27. {
  28. w=d;
  29. d=r;
  30. r=w%d;
  31. }
  32. return d;
  33. }
  34.  
  35. int main()
  36. {
  37. freopen("coliniare.in","r",stdin);
  38. freopen("coliniare.out","w",stdout);
  39. scanf("%d",&n);
  40. for(i=1;i<=n;i++)
  41. {
  42. scanf("%d%d",&x[i],&y[i]);
  43. }
  44. maxim=0;
  45. for(i=1;i<n;i++)
  46. for(j=i+1;j<=n;j++)
  47. {
  48. a=y[i]-y[j];
  49. b=x[j]-x[i];
  50. c=x[i]*y[j]-x[j]*y[i];
  51. if(a<0){a=-a;b=-b;c=-c;}
  52. else if((a==0)and(b<0)){b=-b;c=-c;}
  53. a1=a;b1=b;c1=c;
  54. d1=cmmdc(a,b,c);
  55. a=a1/d1;b=b1/d1;c=c1/d1;
  56. b=b+50;
  57. c=c+2500;
  58. poz=a+b*100+c*10000;
  59. viz[poz]++;
  60. if(viz[poz]>maxim)maxim=viz[poz];
  61. }
  62. maxim=floor((sqrt(8*maxim+1)+1)/2);
  63. printf("%d",maxim);
  64. return 0;
  65. }
Add Comment
Please, Sign In to add comment