-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPoint_Of_Impact.cpp
52 lines (44 loc) · 973 Bytes
/
Point_Of_Impact.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// www.codechef.com/JAN21C/problems/BILLRD/
#include <iostream>
using namespace std;
struct p {
long x;
long y;
};
int main() {
int t; cin >> t;
for(int i=0; i < t; i++) {
long N, K, d;
p ip, op, pp[4];
cin >> N >> K >> ip.x >> ip.y;
K--;
d = abs(ip.y - ip.x);
if(ip.x == ip.y) {
op.x = op.y = N;
} else if(ip.x < ip.y) {
pp[1].x = N;
pp[1].y = N-d;
pp[0].x = N-d;
pp[0].y = N;
pp[3].x = 0;
pp[3].y = d;
pp[2].x = d;
pp[2].y = 0;
op.x = pp[K%4].x;
op.y = pp[K%4].y;
} else {
pp[0].x = N;
pp[0].y = N-d;
pp[1].x = N-d;
pp[1].y = N;
pp[2].x = 0;
pp[2].y = d;
pp[3].x = d;
pp[3].y = 0;
op.x = pp[K%4].x;
op.y = pp[K%4].y;
}
cout << op.x << " " << op.y << endl;
}
return 0;
}