[Solved] Transceiver Communication with C++

Transceiver Communication: The ExCon Fair is the region’s largest trade fair on Construction Equipments & Technology. The Event is targeted to be attended by approx. 30 million visitors. To ensure the smooth functioning of the event and the safety of the visitors, the Event Coordinator, Security Chief and Crowd Control Chief were instructed to carry two-way transceivers so they can stay in constant contact. Of course, these transceivers have a limited range so if two are too far apart, they cannot communicate directly.

The Event Coordinator invested in top-of-the-line transceivers which have a few advanced features. One is that even if two people cannot talk directly because they are out of range, if there is another transceiver that is close enough to both, then the two transceivers can still communicate with each other using the third transceiver as an intermediate device.

There has been a minor emergency at the Event and the Event Coordinator needs to communicate with both the Security Chief and Crowd Control Chief right away. Help the Event Coordinator determine if it is possible for all three people to communicate with each other, even if two must communicate through the third because they are too far apart.

Input Format:
The first line of the input contains a positive integer R ≀ 1,000 indicating that two transceivers can communicate directly without an intermediate transceiver if they are at most R meters away from each other.
The remaining three lines of the input describe the current locations of the the Event Coordinator, Security Chief and Crowd Control Chief, respectively. Each such line contains two integers X,Y (at most 10,000 in absolute value) indicating that the respective person is located at position X,Y.

Output Format:
Output a single line containing a single string. If it is possible for all three to communicate then you should output “Yes”. Otherwise, you should output “No”.
To be clear, we say that two transceivers are close enough to communicate directly if the length of the straight line connecting their X,Y coordinates is at most R.
Refer to sample input and output for formatting specifications.

Sample Input 1:
1
0 1
0 0
1 0

Sample Output 1:
Yes

Sample Input 2:
2
0 0
0 2
2 1

Sample Output 2:
No

Solution

#include <bits/stdc++.h>
using namespace std;

float calc_dist(int p1[], int p2[])
{
    float dist;
    dist = sqrt(pow(p1[0] - p2[0], 2) + pow(p1[1] - p2[1], 2));
    return dist;
}

int main()
{
    int t, p1[2], p2[2], p3[2], i, r, val;
    float dis[3];
        val = 0;
        cin >> r;
        for (i = 0; i < 2; i++)
        {
            cin >> p1[i];
        }
        for (i = 0; i < 2; i++)
        {
            cin >> p2[i];
        }
        for (i = 0; i < 2; i++)
        {
            cin >> p3[i];
        }
        dis[0] = calc_dist(p1, p2);
        dis[1] = calc_dist(p2, p3);
        dis[2] = calc_dist(p1, p3);
        for (i = 0; i < 3; i++)
        {
            if (dis[i] <= r)
            {
                val++;
            }
        }
        if (val >= 2)
        {
            cout << "Yes";
        }
        else
        {
            cout << "No";
        }
        cout << "\n";

    return 0;
}

Happy Learning – If you require any further information, feel free to contact me.

Share your love
Saurav Hathi

Saurav Hathi

I'm currently studying Bachelor of Computer Science at Lovely Professional University in Punjab.

πŸ“Œ Nodejs and Android 😎
πŸ“Œ Java

Articles: 444

Leave a Reply

Your email address will not be published. Required fields are marked *