Advertisement
evgenko

Untitled

Sep 23rd, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.14 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <math.h>
  4. using namespace std;
  5. void sortir(int arr[],int size)
  6. {
  7.     for (int i=0;i<size;i++)
  8.         for (int j=i;j<size;j++)
  9.         {
  10.             if ((arr[i*2+1])>(arr[j*2+1]))
  11.             {
  12.                 int a=arr[i*2+1];
  13.                 arr[i*2+1]=arr[j*2+1];
  14.                 arr[j*2+1]=a;
  15.                 a=arr[i*2];
  16.                 arr[i*2]=arr[j*2];
  17.                 arr[j*2]=a;
  18.             }
  19.             if ((arr[i*2+1])==(arr[j*2+1]))
  20.             {
  21.                 if ((arr[i*2])>(arr[j*2]))
  22.                 {
  23.                 int a=arr[i*2+1];
  24.                 arr[i*2+1]=arr[j*2+1];
  25.                 arr[j*2+1]=a;
  26.                 a=arr[i*2];
  27.                 arr[i*2]=arr[j*2];
  28.                 arr[j*2]=a;
  29.                 }
  30.             }
  31.         }
  32. }
  33.  
  34. int distance(int x,int x2,int radius)
  35. {
  36.     return (sqrt((pow(x2-x,2)))-radius);
  37. }
  38.  
  39. int main()
  40. {
  41.     ifstream input;
  42.     input.open("TABLE.DAT",ios::in);
  43.     int leftX,rightX,radius,columns;
  44.     input>>leftX;
  45.     input>>rightX;
  46.     input>>radius;
  47.     input>>columns;
  48.     int arrayCor[columns*2];
  49.     for (int i=0;i<columns;i++)
  50.     {
  51.         input>>arrayCor[i*2];
  52.         input>>arrayCor[i*2+1];
  53.     }
  54.     input.close();
  55.     sortir(arrayCor,columns);
  56.     int max,maxtest,maxtest3;
  57.     maxtest=0;
  58.     int min=distance(leftX,rightX,radius);
  59.     for (int i=0;i<columns;i++)
  60.     {
  61.         if (arrayCor[i*2+1]!=arrayCor[i*2-1])
  62.             max=distance(arrayCor[i*2],leftX,radius);
  63.         if (arrayCor[i*2+1]==arrayCor[i*2-1])
  64.         {
  65.             int k = distance(arrayCor[i*2],arrayCor[i*2-2],radius);
  66.             if (k>maxtest)
  67.                 maxtest=k;
  68.         }
  69.  
  70.         if (arrayCor[i*2+1]!=arrayCor[i*2+3])
  71.         {
  72.             maxtest3 = distance(arrayCor[i*2],rightX,radius);
  73.             if (maxtest>max)
  74.                 max=maxtest;
  75.             if (maxtest3>max)
  76.                 max=maxtest3;
  77.             if (max<min)
  78.                 min=max;
  79.             maxtest=0;
  80.             maxtest3=0;
  81.         }
  82.     }
  83.     ofstream output;
  84.     output.open("TABLE.sol");
  85.     output<<min;
  86.     cout<<min;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement