20111015

ACM 10209 Is This Integration ?

畫輔助線後答案就出來了。





















x表示斜線面積、y點狀面積(4塊)、z剩下的(4塊)
由畢式定理:紅色三角形邊長比為1:√3:2
即是,算出紅色三角形面積 + 30度的扇形面積,
與半個正方形面積的差值,為半個z:
(a^2)/2 - [(1/2) * (a/2) * (√3a/2) + (30/360) * πa^2]
乘2後可得z:
a^2 - (√3a^2)/4 - (πa^2)/6

利用z來求y值,
y為正方形面積與90度扇形面積+2個z的差值:
a^2 - [(90/360) * πa^2 + 2z]
化簡後可得y:
a^2 - (πa^2)/4 - 2z
最後中間那塊x即為正方形面積與4塊(y+z)面積的差值:
a^2 - 4z - 4y

請無視我寫的E跟F(掩面),看來我少標一個點……

/* ACM 10209
 * mythnc
 * 2011/10/15 00:01:27   
 * run time: 0.040
 */
#include <stdio.h>
#include <math.h>

int main(void)
{
    /* x: striped region, y: dotted region, z: the rest */
    /* y and z have 4 pieces */
    /* output x directly: a^2 - 4y - 4z */
    double a, y, z;
    double const pi = 3.1415926535897931159980;

    while (scanf("%lf", &a) != EOF) {
        a *= a; /* a mean a^2 now */
        z = 4*a - 2*pi*a / 3 - a*sqrt(3); /* z mean 4z now */
        y = 4*a - pi*a - 2*z; /* y mean 4y now */
        printf("%.3f %.3f %.3f\n", a - y - z, y, z);
    }
    return 0;
}

沒有留言: