코드가 좀 더럽긴 합니다.. 깊게생각하려니 좀 머리아파서 if else로 떡칠했어요


그래도 로직적인부분은 다맞다고생각했는대 자꾸 오답뜨네여


밑변과 높이를 이용해서 각도구하고 1사분면, 2사분면, 3사분면, 4분면으로 분기해서 그 각도에따라 값을 넣어줬거든요..


마지막엔 빗변의 길이를 비교해서 곱연산 해줬는데계속오답뜨네요ㅜㅜ


뭘 간과한건지 지적부탁드립니다..




#include <stdio.h>

#include <math.h>


int main()

{

    int a,b;

    double c,A;

    int cnt;

    int r1, r2, r3, r4, r5;

    int score=0, res=0;

    scanf("%d %d %d %d %d", &r1, &r2, &r3, &r4, &r5);

    scanf("%d", &cnt);

    

    for(int i=0; i<cnt; i++)

    {

        scanf("%d %d",&a, &b);

    

        c=(double)sqrt((a*a)+(b*b));  // 빗변 (피타고라스의 정리)

        A=(double)abs(b)/(abs(a)+abs(b))*90// 90도를 기준으로 A 비율

        if(a>=0 && b>=0)

        {

            if(A>=81) score=20;

            else if(A>=63) score=1;

            else if(A>=45) score=18;

            else if(A>=27) score=4;

            else if(A>=9) score=13;

            else score=6;

        }

        else if(a<0 && b>=0)

        {

            if(A>=81) score=20;

            else if(A>=63) score=5;

            else if(A>=45) score=12;

            else if(A>=27) score=9;

            else if(A>=9) score=14;

            else score=11;

        }

        else if(a<0 && b<0)

        {

            if(A>=81) score=3;

            else if(A>=63) score=19;

            else if(A>=45) score=7;

            else if(A>=27) score=16;

            else if(A>=9) score=8;

            else score=11;

        }

        else if(a>=0 && b<0)

        {

            if(A>=81) score=3;

            else if(A>=63) score=17;

            else if(A>=45) score=2;

            else if(A>=27) score=15;

            else if(A>=9) score=10;

            else score=6;

        }

        if(c<=r1) res+=50;

        else if(c>=r2 && c<=r3) res+=(score*3);

        else if(c>=r4 && c<=r5) res+=(score*2);

        else if(c>r5);

        else res+=score;

        }

    printf("%d\n", res);

}

// 78 56 34 12