Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. #include <cstring>
  5. #include <cstdio>
  6. #include <set>
  7. #include <math.h>
  8.  
  9. using namespace std;
  10.  
  11. const int MaxN = 1005;
  12.  
  13. int x[MaxN], y[MaxN];
  14.  
  15.  
  16. int main(){
  17.  
  18.     freopen("Ulaz.txt","r",stdin);
  19.     freopen("Izlaz2.txt","w",stdout);
  20.  
  21.     int n, sol = 0;
  22.     scanf("%d", &n );
  23.  
  24.     for(int i = 0; i < n; ++i )
  25.       scanf("%d %d", &x[i], &y[i] );
  26.  
  27.     multiset <double> M;
  28.  
  29.     double koef_m = -1, koef_b = -1;
  30.  
  31.     for(int i = 0; i < n; ++i ){
  32.         M.clear();
  33.         for(int j = i+1; j < n; ++j ){
  34.  
  35.             if( y[i] == y[j] || x[i] == x[j] ) continue;
  36.  
  37.             double m = (double)(y[j]-y[i]) / (x[j]-x[i]);
  38.             double b = (double)y[i] - m*x[i];
  39.  
  40.             M.insert(m);
  41.             int P = M.count(m);
  42.  
  43.             if( P > sol ){
  44.                 koef_m = m, koef_b = b;
  45.                 sol = P;
  46.             }
  47.             else if( P == sol ){
  48.               if( fabs(m) < fabs(koef_m) )
  49.                 koef_m = m, koef_b = b;
  50.               else if( fabs(m)-fabs(koef_m) < 1e-16 )
  51.                  if( fabs(b) < fabs(koef_b) ) koef_m = m, koef_b = b;
  52.             }
  53.         }
  54.     }
  55.  
  56.     printf("%.3lf %.3lf\n", koef_m, koef_b );
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement