Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Maximum possible intersection by moving centers of line segments in C++


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมหาส่วนตัด (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