ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อค้นหาจุดตัดที่เป็นไปได้สูงสุดโดยการย้ายจุดศูนย์กลางของส่วนของเส้นตรง
สำหรับสิ่งนี้ เราจะจัดให้มีจุดกึ่งกลางของส่วนของเส้นตรงสามส่วนและความยาวของเส้นเหล่านั้น งานของเราคือย้ายจุดศูนย์กลางเป็นระยะทาง K เพื่อเพิ่มความยาวของพื้นที่ทางแยก
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; //finding maximum intersection 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; int K = 1; cout << max_intersection(center, L, K); }
ผลลัพธ์
1