เปเบ footsteps เปเบเป
1. Pie เบชเปเบฒเบฅเบฑเบเบซเบปเบ
เบเบฒเบเบชเปเบฒเบเบเบฑเบเบซเบฒ
เบเปเบฒเบเบปเบเปเบงเบฅเบฒเปเบกเปเบ 4 เบงเบดเบเบฒเบเบต.
เบเปเบฒเบเบกเบต pie. เปเบกเบทเปเบญเปเบเบดเปเบเบเบฒเบเบเปเบฒเบเปเบเบดเบ, cake เบกเบตเบฎเบนเบเบฎเปเบฒเบเบเบญเบ polygon convex (เบขเปเบฒเบเปเบเบฑเปเบกเบเบงเบ). เปเบเบปเปเบฒเปเบเปเบฎเบฑเบเบเบธเบเบเบฐเบชเบฒเบเบเบฒเบเบเบญเบเบเบธเบเบเบฑเปเบเปเบเบเบณเบเบงเบ X เปเบฅเบฐ Y.
เบเปเบฒเบโเบกเบตโเบซเบกเบนเปโเปเบเบทเปเบญเบโเบซเปเบฒโเบเบปเบโ. เบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบเปเบ pie เปเบเบฑเบเบซเบปเบเบเปเบญเบเบเบญเบเบเบทเปเบเบเบตเปเปเบเบปเปเบฒเบเบฝเบกเบเบฑเบ (เปเบเปเบเปเปเบเปเบฒเปเบเบฑเบเบฎเบนเบเบฎเปเบฒเบเบเบฝเบงเบเบฑเบ). เปเบเปเบเบญเบ, เบเบธเบเปเบเบปเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบซเปเบฒเบเบฒเบเบเบฑเบ, เปเบเปเบงเปเบฒเบเบฝเบเปเบเปเบเบนเปเบเปเบฝเบงเบเบฒเบเปเบเบปเปเบฒเบเบฑเปเบเบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบชเบฒเบกเบเบฒเบเบเบฑเบ.
เบเบญเบเบซเบฒเบชเบฒเบกเบเบฑเบเปเบเปเบชเบฑเปเบเบเบทเปเบเปเบฒเบเบเบธเบเบซเบเบถเปเบเบเบตเปเบเบฐเปเบเปเบ pie เปเบเบฑเบเบซเบปเบเบชเปเบงเบเปเบเบปเปเบฒเบเบฝเบกเบเบฑเบ. เบเบดเบก {x, y, d1, d2, d3}, เบเปเบญเบเบเบตเป (x, y) เปเบกเปเบเบเบธเบเบเบปเปเบงเปเบเบเบญเบเบเบฒเบเบเบฑเบเบเบฑเบเบชเบฒเบก, เปเบฅเบฐ d1, d2, d3 เปเบกเปเบเบกเบธเบกเบเบดเบเบเบฒเบเบเบญเบเบเบฒเบเบเบฑเบเปเบเปเบฃเบเบฝเบ.
เบเปเบฒเบเบดเบเบฒเบกเบซเปเบญเบเบฎเบฝเบ: CakeForSix
เบงเบดเบเบตเบเบฒเบ: เบเบฑเบ
เบเบฒเบฃเบฒเบกเบดเปเบเบต: int[], int[] เบเบฑเบเบเบทเบ: double[] เบฅเบฒเบเปเบเบฑเบเบงเบดเบเบตเบเบฒเบ: double[] cut(int[] x, int[] y)
(เปเบซเปเปเบเปเปเบเบงเปเบฒเบงเบดเบเบตเบเบฒเบเบเบญเบเบเปเบฒเบเปเบกเปเบเบชเบฒเบเบฒเบฅเบฐเบเบฐ)
เบซเบกเบฒเบเปเบซเบ
- เบเบดเบเบเบฒเบเบเบงเบเบเบฒเบกเปเบเบ x เปเบกเปเบ 0 (เปเบฃเบเบฝเบ), เบเบดเบเบเบฒเบเบเบงเบเบเบฒเบกเปเบเบ y เปเบกเปเบ pi/2 (เปเบฃเบเบฝเบ).
- เบเบฒเบเบเบฑเบเปเบเบเบดเบเบเบฒเบ d เปเบกเปเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบเบเบฒเบเบเบฑเบเปเบเบเบดเบเบเบฒเบ pi*k+d เบชเปเบฒเบฅเบฑเบเบเปเบฒเบเบงเบเปเบเบฑเบก k.
- เบเปเบฒเบเบชเบฒเบกเบฒเบเบญเบญเบเบเบดเบเบเบฒเบเปเบเบเปเปเบเบฒเบก, เบเบงเบเปเบเบปเบฒเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบกเบฒเบเบฒเบ [0, pi).
- grader เบเบฐเบเบดเบเปเบฅเปเบเบทเปเบเบเบตเปเบเบญเบ cake เบซเบปเบเบเปเบญเบเบเบญเบเบเปเบฒเบเปเบเบชเบญเบเปเบเบปเปเบฒ. เบเปเบฒเบเบญเบเบเบฐเบเบทเบเบเบญเบกเบฎเบฑเบเบเปเบฒเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบขเปเบฒเบเปเบเปเบเบดเบเบฅเบฐเบซเบงเปเบฒเบเบเบงเบเบกเบฑเบเบซเบเปเบญเบเบเบงเปเบฒ 10^(-4).
- เบเบฑเบเปเบเบเบเบงเปเบฒเบเบฑเปเบ, เปเบซเป X เปเบฅเบฐ Y เปเบเบฑเบเบเบทเปเบเบเบตเปเบเปเบญเบเบเบตเปเบชเบธเบ เปเบฅเบฐเปเบซเบเปเบชเบธเบเปเบเบซเบปเบเบเบทเปเบเบเบตเปเบเบญเบเปเบเบปเปเบฒเบเบตเปเบเบดเบเปเบฅเปเปเบเบเบเบนเปเบฎเบฝเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบญเบเบเบญเบเปเบเบปเปเบฒเบเบฐเบเบทเบเบเบญเบกเบฎเบฑเบเบเปเบฒ Y
- (เบชเบฐเบเบฑเบเบเบปเปเบเบชเบฐเบเบฑเบเบเบญเบเบเบฑเบเบซเบฒเปเบเปเบเปเบฒเปเบเปเบเบงเบฒเบกเปเบกเปเบเบเปเบฒเบเบญเบ 1e-7 เปเบเบเบเบตเปเบเบฐเปเบเบฑเบ 1e-4. เปเบเบทเปเบญเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเปเบขเบนเปเปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ, เบเบญเบเปเบเบเบเปเบฒเบเบฑเบเบเบงเบฒเบกเปเบกเปเบเบเปเบฒเปเบเปเบเบทเบเบซเบผเบธเบเบฅเบปเบเปเบเบทเปเบญเบเบเบฒเบเบกเบตเบเปเบฅเบฐเบเบตเบเบฒเบเปเบเบเบตเปเบญเบฒเบเบเบฐเปเบฎเบฑเบเปเบซเปเบเบฑเบเบซเบฒเบเปเปเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเปเบเปเบงเบเบเบงเบฒเบกเปเบกเปเบเบเปเบฒ. เบเบญเบ 1e-7. เปเบเปเบฅเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก, เบเบญเบเปเบเบเบเปเบฒเบเบฑเบเบเปเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฅเบฐเบเบตเบเบฑเปเบเบเปเบฒเบงเปเบฅเบฐเบเบฑเบเบเปเบญเบเบเบฒเบเบเบงเบฒเบกเปเบกเปเบเบเปเบฒเบชเบนเบ, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเปเบกเบตเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบปเบงเปเบฅเบเบเบปเปเบงเปเบเบเบฒเบเบขเปเบฒเบเบเปเปเปเบกเปเบเปเบฅเบทเปเบญเบเบเปเบฒเบ).
Restrictions
- x เบเบฐเบเบญเบเบกเบต 3 เบซเบฒ 50 เบญเบปเบเบเบฐเบเบญเบ.
- y เบกเบตเบเปเบฒเบเบงเบเบญเบปเบเบเบฐเบเบญเบเบเบฝเบงเบเบฑเบเบเบฑเบ x.
- เบเบฐเบชเบฒเบเบเบฒเบเบเบฑเบเปเบปเบเบฅเบฐเบซเบงเปเบฒเบ 0 เปเบฅเบฐ 10 เบฅเบงเบก
- x เปเบฅเบฐ y เบเปเบฒเบเบปเบ polygon เปเบเบเปเบเบเบดเบเบเบฒเบเบเบปเบเบเบฑเบเบเปเบฒเบก.
เบเบปเปเบเบชเบฐเบเบฑเบเปเบเบเบฒเบชเบฒเบญเบฑเบเบเบดเบ
เบเบฐเปเบซเบผเบเบเบฒเบเบเบฑเบเบซเบฒ
เบเปเบฒเบเบปเบเปเบงเบฅเบฒเปเบกเปเบ 4 เบงเบดเบเบฒเบเบต.
เปเบเบปเปเบฒเบกเบตเปเบเบฑเบ. เปเบซเบฑเบเปเบเปเบเบฒเบเบเปเบฒเบเปเบเบดเบ, เปเบเปเบเปเบเบฑเบเบฎเบนเบเบชเบตเปเบซเบผเปเบฝเบกเปเบเบก (เบขเปเบฒเบเปเบเบฑเปเบกเบเบงเบ). เปเบเบปเปเบฒเปเบเปเบฎเบฑเบเบเบธเบเบเบฐเบชเบฒเบเบเบฒเบเบเบญเบเบเบธเบเบเบฑเปเบเบเบญเบเบกเบฑเบเบขเบนเปเปเบ int[]sx เปเบฅเบฐ y.
เบเปเบฒเบโเบกเบตโเบซเบกเบนเปโเปเบเบทเปเบญเบโเบซเปเบฒโเบเบปเบโ. เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฑเบ cake เปเบเบฑเบเบซเบปเบเบเปเบญเบเบเบญเบเบเบทเปเบเบเบตเปเปเบเบปเปเบฒเบเบฝเบกเบเบฑเบ (เปเบเปเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบกเบตเบฎเบนเบเบฎเปเบฒเบเปเบเบปเปเบฒเบเบฝเบกเบเบฑเบ). เปเบเปเบเบญเบ, เบเบธเบเปเบเบปเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบชเบดเปเบเบเบฑเปเบเปเบเปเปเบเบซเปเบฒเบเบฒเบเบเบฑเบ - เปเบเปเบงเปเบฒเบเบฝเบเปเบเปเบเบนเปเบเปเบฝเบงเบเบฒเบเบเบตเปเปเบเปเบเบดเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบเบชเบฒเบกเบเบฑเปเบ!
เบเบญเบเบซเบฒเบเบฒเบเบเบฑเบเปเบชเบฑเปเบเบเบทเปเบชเบฒเบกเปเบชเบฑเปเบเบเปเบฒเบเบเบธเบเบเบฝเบงเบเบฑเบเบเบตเปเบเบฑเบเปเบเปเบเบญเบญเบเปเบเบฑเบเบซเบปเบเบชเปเบงเบเบเบฐเบซเบเบฒเบเปเบซเบเปเปเบเบปเปเบฒเบเบฝเบกเบเบฑเบ. เบเบฑเบเบเบทเบ {x, y, d1, d2, d3}, เบเปเบญเบเบเบตเป (x, y) เปเบกเปเบเบเบธเบเบเบปเปเบงเปเบเบเบญเบเบชเบฒเบกเบเบฑเบ, เปเบฅเบฐ d1, d2, d3 เปเบกเปเบเบเบดเบเบเบฒเบเบเบญเบเบเบงเบเปเบเบปเบฒเปเบเปเบฃเบเบฝเบ.
เบเปเบฒเบเบดเบเบฒเบก
เบซเปเบญเบเบฎเบฝเบ: CakeForSix
เบงเบดเบเบตเบเบฒเบ: เบเบฑเบ
เบเบฒเบฃเบฒเบกเบดเปเบเบต: int[], int[] เบเบฑเบเบเบทเบ: double[] เบฅเบฒเบเปเบเบฑเบเบงเบดเบเบตเบเบฒเบ: double[] cut(int[] x, int[] y)
(เปเบซเปเปเบเปเปเบเบงเปเบฒเบงเบดเบเบตเบเบฒเบเบเบญเบเบเปเบฒเบเปเบกเปเบเบชเบฒเบเบฒเบฅเบฐเบเบฐ)
เบญเปเบทเบ
โ เบเบดเบเบเบฒเบเบเบงเบเบเบฒเบกเปเบเบ x เปเบกเปเบ 0 (เปเบฃเบเบฝเบ), เบเบดเบเบเบฒเบเบเบงเบเบเบฒเบกเปเบเบ y เปเบกเปเบ pi/2 (เปเบฃเบเบฝเบ).
โ เบเบฒเบเบเบฑเบเปเบเบเบดเบเบเบฒเบ d เปเบกเปเบเบเบทเบเบฑเบเบเบฑเบเบเบฒเบเบเบฑเบเปเบเบเบดเบเบเบฒเบ pi*k+d เบชเปเบฒเบฅเบฑเบเบเปเบฒเบเบงเบเปเบเบฑเบก k.
โ เบเปเบฒเบโเบญเบฒเบโเบเบฐโเบเบฑเบโเบเบทเบโเปเบโเบเปเบญเบโเบเบฒเบโเปเบโเบซเบเบถเปเบโ, เบเบงเบโเปเบเบปเบฒโเปเบเบปเปเบฒโเบเปเปโเบเปเบฒโเปเบเบฑเบโเบเปเบญเบโเบเบฒเบ [0โ,piโ)โ.
โ เบเบนเปเบฎเบฝเบเบเบฐเบเบดเบเปเบฅเปเบเบทเปเบเบเบตเปเบเบญเบเปเบเปเบเบซเบปเบเบญเบฑเบเบเบญเบเปเบเบปเปเบฒเปเบเบฑเบเบชเบญเบเปเบเบปเปเบฒ. เบเปเบฒเบเบญเบเบเบฐเบเบทเบเบเบญเบกเบฎเบฑเบเบเปเบฒเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบขเปเบฒเบเปเบเปเบเบดเบเบฅเบฐเบซเบงเปเบฒเบเบเบงเบเบกเบฑเบเบซเบเปเบญเบเบเบงเปเบฒ 10^(-4).
โ เบเบฑเบเปเบเบเบเบงเปเบฒเบเบฑเปเบ, เปเบซเป X เปเบฅเบฐ Y เปเบเบฑเบเบเบทเปเบเบเบตเปเบเปเบญเบเบเบตเปเบชเบธเบ เปเบฅเบฐเปเบซเบเปเบเบตเปเบชเบธเบเปเบเบซเบปเบเบเบทเปเบเบเบตเปเบเบญเบเปเบเบปเปเบฒ, เบเบฒเบกเบเบฒเบเบเบดเบเปเบฅเปเปเบเบเบเบนเปเบฎเบฝเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบญเบเบเบญเบเปเบเบปเปเบฒเบเบฐเบเบทเบเบเบญเบกเบฎเบฑเบเบเปเบฒ Y < max( X + 10^(-4), X * (1+10^(-4))).
โ (เบชเบฐเบเบฑเบเบเบปเปเบเบชเบฐเบเบฑเบเบเบญเบเบเบฑเบเบซเบฒเปเบเปเปเบเปเบเบงเบฒเบกเปเบกเปเบเบเปเบฒ 1e-7 เปเบเบ 1e-4. เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเปเบขเบนเปเปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ, เบเบญเบเปเบเบเบเปเบฒเบเบฑเบเบเบงเบฒเบกเปเบกเปเบเบเปเบฒเปเบเปเบเบทเบเบซเบผเบธเบเบฅเบปเบเบเปเบญเบเบเบฒเบเบกเบตเบขเบนเปเบเบญเบเบเปเบฅเบฐเบเบตเบเบตเปเบเปเบฒเบเบฒเบเบเบตเปเบชเบธเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบงเบฝเบเบเบฒเบเบเปเปเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเปเบเปเบงเบเบเบงเบฒเบกเปเบกเปเบเบเปเบฒ 1e-7. เปเบเปเบฅเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก, เบเปเปเบเปเบฒเบเบฑเบเบเบฐเบเปเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฅเบฐเบเบตเบเบฑเปเบเบเปเบฒเบงเปเบฅเบฐเบเบฑเบเบเปเบญเบเบเบฒเบเบเบงเบฒเบกเปเบกเปเบเบเปเบฒเบชเบนเบ, เบเบฑเปเบเบเบฑเปเบเบกเบฑเบเบเปเปเบเปเบฒเบเบเบตเปเบเบฐเปเบเปเปเบเบเบฑเบเบซเบฒเปเบเบเบเปเบฒเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบปเบงเปเบฅเบเบเบปเปเบงเปเบ.)
เบเปเป เบเบณ เบเบฑเบ
โ x เบเบฐโเบกเบตโเบฅเบฐโเบซเบงเปเบฒเบ 3 เปเบฅเบฐ 50 เบญเบปเบโเบเบฐโเบเบญเบโ, เบฅเบงเบกโ.
โ y เบเบฐเบกเบตเบเปเบฒเบเบงเบเบญเบปเบเบเบฐเบเบญเบเปเบเบปเปเบฒเบเบฑเบ x.
- เบเบธเบเบเบฐเบชเบฒเบเบเบฒเบเบเบฑเบเปเบปเบเบเบฐเบขเบนเปเบฅเบฐเบซเบงเปเบฒเบ 0 เบซเบฒ 10,000, เบฅเบงเบกเบเบฑเบเปเบปเบ.
โ x เปเบฅเบฐ y เบเบฐโเบญเบฐโเบเบดโเบเบฒเบโเปเบเบฑเบ polygon convex เปเบโเบฅเปเบฒโเบเบฑเบ counterclockwise.
เบเบปเบงเบขเปเบฒเบ
0)
{0, 20, 30, 50, 30, 20}
{10, 0, 0, 10, 20, 20}
เบเบฑเบเบเบทเบ:
{24.999999999437453, 9.999999999500002, 0.0, 0.7266423406817211, 2.4149503129080787 }
hexagon symmetrical เปเบเปเบชเบฐเบซเบกเปเปเบฒเบชเบฐเปเบซเบกเบต. เบเปเบฒเบเบญเบเบเบปเบงเบขเปเบฒเบเปเบกเปเบเปเบเบปเปเบฒเบเบฑเบเบเบฒเบเบเบฑเบเบกเบฑเบเบญเบญเบเปเบเบฑเบเปเบเบดเปเบเบซเบเบถเปเบเบเบฒเบกเปเบเบงเบเบญเบเปเบฅเบฐเบเบฑเบเบญเบตเบเบชเบญเบเปเบชเบฑเปเบเบฅเบปเบเบชเบนเบเบเบฒเบเบเบตเปเปเบเปเบเปเบเปเบฅเบฐเบเบดเปเบเปเบเบฑเบเบชเบฒเบกเบชเปเบงเบ.
1)
{0, 1000, 0}
{0, 0, 1000}
เบเบฑเบเบเบทเบ:
{333.3333333331763, 333.3333333332546, 0.7853981633986264, 2.0344439357948154, 2.6779450445891753 }
เบชเบฒเบกเบซเบผเปเบฝเบกเบเบงเบฒ. เบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบซเบเบถเปเบเปเบเบชเบฒเบกเบเบฑเบเบเบฒเบกเปเบเบเบเบญเบ symmetry.
2)
{40, 70, 90, 90, 50}
{30, 20, 40, 100, 60}
เบเบฑเบเบเบทเบ:
{69.79517771922892, 52.77575974637605, 2.0616329654335885, 3.637826104091601, 4.32123485812475 }
pentagon เบชเบฐเบซเบกเปเปเบฒเบชเบฐเปเบซเบกเบต.
3)
{300, 400, 300, 200}
{500, 600, 700, 600}
เบเบปเบเบเบญเบเปเบเบ: {299.99999999974995, 599.9999999995, 0.0, 1.107148717794088, 2.034443935795705 }
เบชเบตเปเบซเบผเปเบฝเบกเบกเบปเบเบซเบกเบธเบ 45 เบญเบปเบเบชเบฒ.
[
เบเบฝเบเปเบเปเบเบนเปเปเบเปเบฅเบปเบเบเบฐเบเบฝเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเบฎเปเบงเบกเปเบเบเบฒเบเบชเปเบฒเบซเบผเบงเบ.
เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเปเบเปเปเบเบเบฑเบเบซเบฒเบชเปเบฒเบฅเบฑเบ
-
เปเบ เปเปเบญเบ เบเบงเปเบฒ 10 เบเบฒเบเบต
-
10-30 เบเบฒเบเบต
-
30-60 เบเบฒเบเบต
-
1-2 เบเบปเปเบงเปเบกเบ
-
เปเบโเบซเบผเบฒเบโเบเบงเปเบฒ 2 เบเบปเปเบงโเปเบกเบโ
-
เบญเบทเปเบเป
เบเบนเปเปเบเป 42 เบเบปเบเบฅเบปเบเบเบฐเปเบเบเบชเบฝเบ. 47 เบเบนเปเปเบเปเบเบปเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com