festival 문제 질문드립니다.

  • heojungbo
    heojungbo
    #include <iostream>
    #include <stdio.h>
    
    
    using namespace std;
    
    int main(){
        int test_num;
        float aver;
        float min=0;
        int k=0;
        int *cost = new int[1000];
    
        cin>>test_num;
    
        while(test_num>0){
            int size, day;
            cin>>size;
            cin>>day;
    
            min=0;
    
            for(int i=0 ; i<size ; i++) scanf("%d", &cost[i]);
    
            while(true){
                if(k+day>size){
                    day++;
                    k=0;
                }
                if(day>size) break;
                aver=0;
                for(int j=k ; j<k+day ; j++){
                    aver+= cost[j];
                }
                aver=aver/day;
                if(aver<min || min==0)
                    min=aver;
                k++;
    
            }
            printf("%.10f\n", min);
            test_num--;
    
        }
    
        return 0;
    }
    

    코드는 이러한데
    어디서 오류가 나는지 모르겠습니다.
    제가 Test 해본 케이스는 모두 참인데..


    8년 전
4개의 댓글이 있습니다.
  • seico75
    seico75

    오차 범위에 대해서 확인해보세요..
    5 3
    7 7 6 9 9


    8년 전 link
  • heojungbo
    heojungbo

    어떤 오차 범위에 대해서 말씀하시는건가요??


    8년 전 link
  • seico75
    seico75

    5 3
    70 70 60 90 90
    이 예제를 넣었을 때 10^-7 이하 오차범위 안에 있는지 확인해보세요


    8년 전 link
  • heojungbo
    heojungbo

    아 문제가
    float으로 했는데 double로 해주니 바로 정답이 뜨네요...


    8년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.