Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <math.h>
- #include <iomanip>
- using namespace std;
- void sortir(int arr[],int size)
- {
- for (int i=0;i<size;i++)
- for (int j=i;j<size;j++)
- {
- if ((arr[i*2+1])>(arr[j*2+1]))
- {
- int a=arr[i*2+1];
- arr[i*2+1]=arr[j*2+1];
- arr[j*2+1]=a;
- a=arr[i*2];
- arr[i*2]=arr[j*2];
- arr[j*2]=a;
- }
- if ((arr[i*2+1])==(arr[j*2+1]))
- {
- if ((arr[i*2])>(arr[j*2]))
- {
- int a=arr[i*2+1];
- arr[i*2+1]=arr[j*2+1];
- arr[j*2+1]=a;
- a=arr[i*2];
- arr[i*2]=arr[j*2];
- arr[j*2]=a;
- }
- }
- }
- }
- double distance(int x,int x2,int radius)
- {
- return (sqrt((pow(x2-x,2)))-radius);
- }
- int main()
- {
- ifstream input;
- input.open("TABLE.DAT",ios::in);
- int leftX,rightX,radius,columns;
- input>>leftX;
- input>>rightX;
- input>>radius;
- input>>columns;
- int arrayCor[columns*2];
- for (int i=0;i<columns;i++)
- {
- input>>arrayCor[i*2];
- input>>arrayCor[i*2+1];
- }
- input.close();
- sortir(arrayCor,columns);
- double max,maxtest;
- maxtest=0;
- double min=distance(leftX,rightX,radius);
- for (int i=0;i<columns;i++)
- {
- if (arrayCor[i*2+1]!=arrayCor[i*2-1])
- max=distance(arrayCor[i*2],leftX,radius);
- if (arrayCor[i*2+1]==arrayCor[i*2-1])
- {
- double k = distance(arrayCor[i*2],arrayCor[i*2-2],radius);
- if (k>maxtest)
- maxtest=k;
- }
- if (arrayCor[i*2+1]!=arrayCor[i*2+3])
- {
- double k = distance(arrayCor[i*2],rightX,radius);
- if (k>maxtest)
- maxtest=k;
- if (maxtest>max)
- max=maxtest;
- if (max<min)
- min=max;
- maxtest=0;
- }
- }
- ofstream output;
- output.open("TABLE.sol");
- output<<fixed <<setprecision(3) << min;
- output.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement