เชชเชเซเชฐเซเช เชชเชฐ
1. เช เชฎเชพเชเซ เชชเชพเช
เชธเชฎเชธเซเชฏเชพเชจเซ เชฐเชเชจเชพ
เชธเชฎเชฏ เชฎเชฐเซเชฏเชพเชฆเชพ 4 เชธเซเชเชจเซเชก เชเซ.
เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชชเชพเช เชเซ. เชเซเชฏเชพเชฐเซ เชเชชเชฐเชฅเซ เชเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชเซเช (เชเชกเชเชฅเซ) เชฌเชนเชฟเชฐเซเชฎเซเช เชฌเชนเซเชเซเชฃเชจเซ เชเชเชพเชฐ เชงเชฐเชพเชตเซ เชเซ. เชคเชฎเชจเซ X เช เชจเซ Y เชชเซเชฐเซเชฃเชพเชเชเซเชฎเชพเช เชถเชฟเชฐเซเชฌเชฟเชเชฆเซเชเชจเชพ เชเซเชเชฐเซเชกเชฟเชจเซเชเซเชธ เชเชชเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ.
เชคเชฎเชพเชฐเชพ เชชเชพเชเช เชฎเชฟเชคเซเชฐเซ เชเซ. เชคเชฎเซ เชชเชพเชเชจเซ เชธเชฎเชพเชจ เชตเชฟเชธเซเชคเชพเชฐเชจเชพ เช เชเซเชเชกเชพเชเชฎเชพเช เชตเชฟเชญเชพเชเซเชค เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซ (เชชเชฐเชเชคเซ เชคเซ เช เชเชเชพเชฐ เชเชฐเซเชฐเซ เชจเชฅเซ). เช เชฒเชฌเชคเซเชค, เชเซเช เชชเชฃ เชคเซเชจเซ เชชเชพเชเช เชเชเชฎเชพเช เชเชฐเซ เชถเชเซ เชเซ, เชชเชฐเชเชคเซ เชฎเชพเชคเซเชฐ เชเช เชชเซเชฐเซ เช เชคเซเชจเซ เชคเซเชฐเชฃ เชเชเชฎเชพเช เชเชฐเซ เชถเชเซ เชเซ.
เชเช เชฌเชฟเชเชฆเซ เชฆเซเชตเชพเชฐเชพ เชคเซเชฐเชฃ เชธเซเชงเซ เชฐเซเชเชพ เชเชพเชชเซ เชเซ เชชเชพเชเชจเซ เช เชธเชฎเชพเชจ เชญเชพเชเซเชฎเชพเช เชตเชฟเชญเชพเชเชฟเชค เชเชฐเชถเซ. เชเชพเชชเซ {x, y, d1, d2, d3}, เชเซเชฏเชพเช (x, y) เชคเซเชฐเชฃเซเชฏ เชเชเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชฌเชฟเชเชฆเซ เชเซ, เช
เชจเซ d1, d2, d3 เช เชฐเซเชกเชฟเชฏเชจเชฎเชพเช เชเชเชจเชพ เชฆเชฟเชถเชพ เชเซเชฃเชพ เชเซ.
เชตเซเชฏเชพเชเซเชฏเชพเชตเชฐเซเช: CakeForSix
เชชเชฆเซเชงเชคเชฟ: เชเชพเชชเซ
เชชเชฐเชฟเชฎเชพเชฃเซ: int[], int[] เชตเชณเชคเชฐ: เชกเชฌเชฒ[] เชชเชฆเซเชงเชคเชฟ เชนเชธเซเชคเชพเชเซเชทเชฐ: เชกเชฌเชฒ[] เชเช(int[] x, int[] y)
(เชคเชฎเชพเชฐเซ เชชเชฆเซเชงเชคเชฟ เชธเชพเชฐเซเชตเชเชจเชฟเช เชเซ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเซ)
เชจเซเชเชงเซ
- x-เช เชเซเชท เชธเชพเชฅเซเชจเซ เชธเชเชพเชฐเชพเชคเซเชฎเช เชฆเชฟเชถเชพ 0 (เชฐเซเชกเชฟเชฏเชจ) เชเซ, y-เช เชเซเชท เชธเชพเชฅเซเชจเซ เชธเชเชพเชฐเชพเชคเซเชฎเช เชฆเชฟเชถเชพ pi/2 (เชฐเซเชกเชฟเชฏเชจ) เชเซ.
- d เชฆเชฟเชถเชพเชฎเชพเช เชเช เชเซเชเชชเชฃ เชชเซเชฐเซเชฃเชพเชเช k เชฎเชพเชเซ pi*k+d เชฆเชฟเชถเชพเชฎเชพเช เชเชพเชช เชธเชฎเชพเชจ เชเซ.
- เชคเชฎเซ เชเซเชเชชเชฃ เชฆเชฟเชถเชพเช เชเชเชเชชเซเช เชเชฐเซ เชถเชเซ เชเซ, เชคเซ [0, pi) เชฎเชพเชเชฅเซ เชนเซเชตเชพ เชเชฐเซเชฐเซ เชจเชฅเซ.
- เชเซเชฐเซเชกเชฐ เชกเชฌเชฒเซเชธเชฎเชพเช เชคเชฎเชพเชฐเซ เชเซเชเชจเชพ เช เชเซเชเชกเชพเชจเชพ เชเซเชทเซเชคเซเชฐเชซเชณเชจเซ เชเชฃเชคเชฐเซ เชเชฐเชถเซ. เชเซ เชคเซเชฎเชจเซ เชตเชเซเชเซ เชธเชเชฌเชเชงเชฟเชค เช เชฅเชตเชพ เชธเชเชชเซเชฐเซเชฃ เชคเชซเชพเชตเชค 10^(-4) เชเชฐเชคเชพ เชเชเซ เชนเซเชฏ เชคเซ เชเชตเชพเชฌ เชธเซเชตเซเชเชพเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ.
- เชตเชงเซ เชธเซเชชเชทเซเช เชฐเซเชคเซ, X เช เชจเซ Y เชจเซ เชเซเชฐเซเชกเชฐ เชฆเซเชตเชพเชฐเชพ เชเชฃเชคเชฐเซ เชเชฐเชพเชฏเซเชฒ เชคเชฎเชพเชฐเชพ เช เชเซเชทเซเชคเซเชฐเซเชฎเชพเช เชธเซเชฅเซ เชจเชพเชจเชพ เช เชจเซ เชธเซเชฅเซ เชฎเซเชเชพ เชฅเชตเชพ เชฆเซ. เชชเชเซ เชคเชฎเชพเชฐเซ เชเชตเชพเชฌ เชธเซเชตเซเชเชพเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ เชเซ Y
- (เชธเชฎเชธเซเชฏเชพเชจเชพ เชฎเซเชณ เชธเชเชธเซเชเชฐเชฃเชฎเชพเช 1e-7 เชจเซ เชฌเชฆเชฒเซ 1e-4 เชจเซ เชเซเชเชธเชพเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเชคเซ. เชเชฐเซเชเชพเชเชตเชฎเชพเช เช เชธเชฎเชธเซเชฏเชพเชจเซ เชเชเซเชฒเชตเชพ เชฎเชพเชเซ, เชเซเชฒเชฟเชเช เชเซเชธเซเชจเซ เชนเชพเชเชฐเซเชจเซ เชเชพเชฐเชฃเซ เชเซเชเชธเชพเช เชฎเชฐเซเชฏเชพเชฆเชพ เชเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ เชเซ เชธเชเชญเชตเชคเช เชเซเชเชธเชพเช เชธเชพเชฅเซ เชธเชฎเชธเซเชฏเชพเชจเซ เชตเชฃเชเชเซเชฒเชตเชพเชฎเชพเช เชเชตเซ เชถเชเซ เชเซ. 1e-7. เชเชฆเชฐเซเชถ เชตเชฟเชถเซเชตเชฎเชพเช, เชฎเชฐเซเชฏเชพเชฆเชพ เชเชตเชพ เชเซเชธเซเชจเซ เชฎเชเชเซเชฐเซ เชเชชเชคเซ เชจเชฅเซ เช เชจเซ เชนเชเซ เชชเชฃ เชเชเซเช เชเซเชเชธเชพเชเชจเซ เชเชฐเซเชฐ เชเซ, เชคเซเชฅเซ เชเซเชเชฒเชพเช เชธเชพเชฎเชพเชจเซเชฏ เชธเชเชเซเชฏเชพเชคเซเชฎเช เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจ เชธเชพเชฅเซ เชธเชฎเชธเซเชฏเชพเชจเซเช เชจเชฟเชฐเชพเชเชฐเชฃ เชเชฐเชตเซเช เชธเชฐเชณ เชจเชฅเซ.)
เชชเซเชฐเชคเชฟเชฌเชเชงเซ
- x เชฎเชพเช 3 เชฅเซ 50 เชเชเชเซเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ.
- y เชฎเชพเช x เชเซเชเชฒเชพ เชคเชคเซเชตเซ เชเซ.
- 0 เช เชจเซ 10 เชจเซ เชตเชเซเชเซเชจเชพ เชคเชฎเชพเชฎ เชเซเชเชฐเซเชกเชฟเชจเซเชเซเชธ เชธเชนเชฟเชค
- x เช เชจเซ y เชเชกเชฟเชฏเชพเชณเชจเซ เชตเชฟเชฐเซเชฆเซเชง เชฆเชฟเชถเชพเชฎเชพเช เชฌเชนเชฟเชฐเซเชฎเซเช เชฌเชนเซเชเซเชฃ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซ เชเซ.
เช เชเชเซเชฐเซเชเซเชฎเชพเช เชฎเซเชณ
เชธเชฎเชธเซเชฏเชพ เชจเชฟเชตเซเชฆเชจ
เชธเชฎเชฏ เชฎเชฐเซเชฏเชพเชฆเชพ 4 เชธเซเชเชจเซเชก เชเซ.
เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชเซเช เชเซ. เชเชชเชฐเชฅเซ เชเซเชตเชพเชฎเชพเช เชเชตเซ เชคเซ, เชเซเช เช (เชเชกเชเชฅเซ) เชฌเชนเชฟเชฐเซเชฎเซเช เชฌเชนเซเชเซเชฃ เชเซ. เชคเชฎเชจเซ int[]sx เช เชจเซ y เชฎเชพเช เชคเซเชจเชพ เชถเชฟเชฐเซเชฌเชฟเชเชฆเซเชเชจเชพ เชเซเชเชฐเซเชกเชฟเชจเซเชเซเชธ เชเชชเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ.
เชคเชฎเชพเชฐเชพ เชชเชพเชเช เชฎเชฟเชคเซเชฐเซ เชเซ. เชนเชตเซ เชคเชฎเซ เชเซเชเชจเซ เชธเชฎเชพเชจ เชเซเชทเซเชคเซเชฐเชซเชณเชจเชพ เช เชเซเชเชกเชพเชเชฎเชพเช เชเชพเชชเชตเชพ เชฎเชพเชเชเซ เชเซ (เชชเชฐเชเชคเซ เชธเชฎเชพเชจ เชเชเชพเชฐ เชเชฐเซเชฐเซ เชจเชฅเซ). เช เชฒเชฌเชคเซเชค, เชเซเช เชชเชฃ เชคเซ เชชเชพเชเช เชเชเชฎเชพเช เชเชฐเซ เชถเชเซ เชเซ - เชชเชฐเชเชคเซ เชฎเชพเชคเซเชฐ เชเช เชธเชพเชเซ เชชเซเชฐเซ เชคเซเชฐเชฃเชฎเชพเช เชคเซ เชเชฐเซ เชถเชเซ เชเซ!
เชเซเชเชจเซ เช เชธเชฎเชพเชจ เชฎเซเชเชพ เชญเชพเชเซเชฎเชพเช เชเชพเชชเชคเชพ เชธเชฎเชพเชจ เชฌเชฟเชเชฆเซเชฎเชพเชเชฅเซ เชชเชธเชพเชฐ เชฅเชคเชพ เชคเซเชฐเชฃ เชธเซเชงเซ-เชฐเซเชเชพเชจเชพ เชเช เชถเซเชงเซ. เชฐเซเชเชฐเซเชจ {x, y, d1, d2, d3}, เชเซเชฏเชพเช (x, y) เช เชคเซเชฐเชฃ เชเชเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชฌเชฟเชเชฆเซ เชเซ, เช เชจเซ d1, d2, d3 เชฐเซเชกเชฟเชฏเชจเชฎเชพเช เชคเซเชฎเชจเซ เชฆเชฟเชถเชพเช เชเซ.
เชตเซเชฏเชพเชเซเชฏเชพ
เชตเชฐเซเช: CakeForSix
เชชเชฆเซเชงเชคเชฟ: เชเชพเชชเซ
เชชเชฐเชฟเชฎเชพเชฃเซ: int[], int[] เชตเชณเชคเชฐ: เชกเชฌเชฒ[] เชชเชฆเซเชงเชคเชฟ เชนเชธเซเชคเชพเชเซเชทเชฐ: เชกเชฌเชฒ[] เชเช(int[] x, int[] y)
(เชคเชฎเชพเชฐเซ เชชเชฆเซเชงเชคเชฟ เชธเชพเชฐเซเชตเชเชจเชฟเช เชเซ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเซ)
เชจเซเชเชงเซ
โ x เช
เชเซเชท เชธเชพเชฅเซเชจเซ เชธเชเชพเชฐเชพเชคเซเชฎเช เชฆเชฟเชถเชพ 0 (เชฐเซเชกเชฟเชฏเชจ) เชเซ, y เช
เชเซเชท เชธเชพเชฅเซเชจเซ เชธเชเชพเชฐเชพเชคเซเชฎเช เชฆเชฟเชถเชพ pi/2 (เชฐเซเชกเชฟเชฏเชจ) เชเซ.
โ d เชฆเชฟเชถเชพเชฎเชพเช เชเชพเชช เช เชเซเชเชชเชฃ เชชเซเชฐเซเชฃเชพเชเช k เชฎเชพเชเซ pi*k+d เชฆเชฟเชถเชพเชฎเชพเช เชเชพเชช เชธเชฎเชพเชจ เชเซ.
- เชคเชฎเซ เชเซเชเชชเชฃ เชฆเชฟเชถเชพเช เชชเชฐเชค เชเชฐเซ เชถเชเซ เชเซ, เชคเซ [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 เชเชกเชฟเชฏเชพเชณเชจเซ เชตเชฟเชฐเซเชฆเซเชง เชฆเชฟเชถเชพเชฎเชพเช เชเซเชฐเชฎเชฎเชพเช เชฌเชนเชฟเชฐเซเชฎเซเช เชฌเชนเซเชเซเชฃเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเชถเซ.
เชเชฆเชพเชนเชฐเชฃเซ
0)
{0, 20, 30, 50, 30, 20}
{10, 0, 0, 10, 20, 20}
เชตเชณเชคเชฐ:
{24.999999999437453, 9.999999999500002, 0.0, 0.7266423406817211, 2.4149503129080787 }
เชเช เชธเชชเซเชฐเชฎเชพเชฃ เชชเชฐเชเชคเซ เช เชจเชฟเชฏเชฎเชฟเชค เชทเชเซเชเซเชฃ. เชเชฆเชพเชนเชฐเชฃเชจเซ เชเชตเชพเชฌ เชคเซเชจเซ เช เชกเชงเชพ เชเชกเชพ เชญเชพเชเชฎเชพเช เชเชพเชชเชตเชพ เช เชจเซ เชเซเชจเซเชฆเซเชฐเชจเซ เชจเซเชเซ เชฌเซ เช เชจเซเชฏ เชเช เชฌเชจเชพเชตเชตเชพเชจเซ เช เชจเซเชฐเซเชช เชเซ เชเซ เชฆเชฐเซเช เชญเชพเชเชจเซ เชคเซเชฐเชฃ เชเซเชเชกเชพเชเชฎเชพเช เชตเชฟเชญเชพเชเชฟเชค เชเชฐเซ เชเซ.
1)
{0, 1000, 0
{0, 0, 1000
เชตเชณเชคเชฐ:
{333.3333333331763, 333.3333333332546, 0.7853981633986264, 2.0344439357948154, 2.6779450445891753 }
เชเชฎเชฃเซ เชคเซเชฐเชฟเชเซเชฃ. เชซเชฐเซเชฅเซ, เชเชชเชฃเซ เชธเชฎเชชเซเชฐเชฎเชพเชฃเชคเชพเชจเซ เชงเชฐเซ เชธเชพเชฅเซ เชคเซเชฐเชฃเชฎเชพเชเชฅเซ เชเช เชเชเชฅเซ เชถเชฐเซเชเชค เชเชฐเซ เชถเชเซเช เชเซเช.
2)
{40, 70, 90, 90, 50
{30, 20, 40, 100, 60
เชตเชณเชคเชฐ:
{69.79517771922892, 52.77575974637605, 2.0616329654335885, 3.637826104091601, 4.32123485812475 }
เช เชจเชฟเชฏเชฎเชฟเชค เชชเซเชจเซเชเชพเชเซเชจ.
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