P176PROH - ROUND 6H - Bạn bè

Link Sub: https://www.spoj.com/PTIT/problems/P176PROH/
Người Gửi: Dương Lee

  • Problem:

Hiện có ba người bạn sinh sống trên đường thẳng Ox ‎‎tại Hà Nội. Người đầu tiên sống tại điểm ‎‎x‎‎1‎‎, người thứ hai sống tại điểm ‎‎x‎‎2‎‎, và ba người bạn sống tại điểm ‎‎x‎‎3‎‎. Họ có kế hoạch để ăn mừng năm mới cùng với nhau, vì vậy họ cần phải gặp nhau tại một điểm.  
Nhiệm vụ của ban là tính Tổng khoảng cách tối thiểu mà họ cần đi để chào mừng năm mới cùng nhau. Input đảm bảo rằng câu trả lời tối ưu luôn luôn là số nguyên.‎
Input
Dòng đầu tiên chứa só lượng bộ test t. 
T dòng sau, mỗi dòng chứa ba số nguyên ‎‎phân biệt ‎‎x‎‎1‎‎, ‎‎x‎‎2‎‎ và ‎‎x‎‎3‎ (‎1 ≤ ‎‎x‎‎1‎‎, ‎‎x‎‎2‎‎, ‎‎x‎‎3‎‎ ≤ 100‎‎) là tọa độ của ngôi nhà đầu tiên, thứ hai và thứ ba tương ứng (tọa độ có giá trị tuyệt đối <= 10^18). 
Output
In một số nguyên duy nhất là khoảng cách tối thiểu tất cả các bạn bè cần để đi để chào mừng năm mới cùng nhau.
Example:
Input
2
7 1 4
30 20 10
Output:
6
20

  • Solution:

Xét tất cả các trường hợp khoảng cách của 3 điểm. Khoảng cách tối thiểu nhỏ nhất là tổng hai khoảng cách nhỏ nhất trong tất cả các trường hợp. 

  • Code:

C++:

https://ideone.com/HWeEfx
#include <iostream>
#include <math.h>
#include <algorithm>
using namespace std;
 
int main ()
{
    long long t;
    cin>>t;
    long long x1, x2, x3;
    long long a[3];
    for (long long i=1; i<=t; i++)
    {
        cin>>x1>>x2>>x3;
        
        a[0]=abs(x1-x2);
        a[1]=abs(x1-x3);
        a[2]=abs(x2-x3);
        
        sort (a, a+3);
        cout<<a[0]+a[1]<<endl;
    }
    return 0;
}

JAVA:

...

Python:

...

Share this

Related Posts

Previous
Next Post »