fork download
  1. /*
  2. Coordonatele a N puncte in planul cartezian sunt
  3. memorate in doi vectori:
  4. A - vectorul absciselor
  5. O - vectorul ordonatelor
  6. Output: Sa se determine in plan segmentul de lungime maxima.
  7. De precizat ca se cere o singura solutie, daca sunt mai multe
  8. segmente de lungime maxima.
  9.  
  10. Example:
  11. Introduceti numarul de puncte -> 3
  12. Introduceti coordonatele punctelor ->
  13. Abscisa punctului 0 -> 1
  14. Ordonata punctului 0 -> 3
  15. Abscisa punctului 1 -> -1
  16. Ordonata punctului 1 -> 1
  17. Abscisa punctului 2 -> 2
  18. Ordonata punctului 2 -> -4
  19. Max Segment -> 7.07107
  20. Points -> (1,3) - ( 2, -4)
  21. */
  22. #include <iostream>
  23. #include <cmath>
  24.  
  25. using namespace std;
  26.  
  27. int main(int argc, char const *argv[]) {
  28.  
  29. int N, A[100], O[100], maxA, maxB;
  30. float dist, d;
  31.  
  32. dist = maxA = maxB = 0;
  33.  
  34. cout<<"Introduceti numarul de puncte -> \n";
  35. cin>>N;
  36. cout<<"Introduceti coordonatele punctelor -> \n";
  37.  
  38. for(int i = 0; i < N; i++) {
  39. cout<<"Abscisa punctului "<<i<<" -> ";
  40. cin>>A[i];
  41. cout<<"Ordonata punctului "<<i<<" -> ";
  42. cin>>O[i];
  43. }
  44.  
  45. for(int i = 0; i < N - 1; ++i) {
  46.  
  47. for(int j = i + 1; j < N; j++) {
  48.  
  49. d = sqrt((A[i] - A[j])*(A[i] - A[j]) + (O[i] - O[j])*(O[i] - O[j]));
  50.  
  51. if(d > dist) {
  52.  
  53. dist = d;
  54.  
  55. maxA = i;
  56.  
  57. maxB = j;
  58.  
  59. }
  60. }
  61. }
  62.  
  63. cout<<"Max Segment -> "<<dist<<"\n";
  64.  
  65. cout<<"Points -> "<<"("<<A[maxA]<<", "<<O[maxA]<<")"<<" - ("<<A[maxB]<<", "<<O[maxB]<<")";
  66.  
  67. return 0;
  68. }
  69.  
Success #stdin #stdout 0.01s 5304KB
stdin
3
1
3
-1
1
2
-4
stdout
Introduceti numarul de puncte -> 
Introduceti coordonatele punctelor -> 
Abscisa punctului 0 -> Ordonata punctului 0 -> Abscisa punctului 1 -> Ordonata punctului 1 -> Abscisa punctului 2 -> Ordonata punctului 2 -> Max Segment -> 7.07107
Points -> (1, 3) - (2, -4)