ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมหาส่วนตัด (intersection) สูงสุดที่เป็นไปได้โดยการเลื่อนจุดกึ่งกลางของเส้นตรง
เราจะได้รับจุดกึ่งกลางของเส้นตรง 3 เส้นและความยาวของมัน งานคือเลื่อนจุดกึ่งกลางได้ระยะ K เพื่อเพิ่มความยาวของพื้นที่ตัดกัน
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
int max_intersection(int* center, int length, int k) {
sort(center, center + 3);
if (center[2] - center[0] >= 2 * k + length) return 0;
else if (center[2] - center[0] >= 2 * k)
return (2 * k - (center[2] - center[0] - length));
else return length;
}
int main() {
int center[3] = {1, 2, 3};
int L = 1, K = 1;
cout << max_intersection(center, L, K);
}
เอาต์พุต
1