festival 컴퓨터에서 하면 잘 되는데 왜 오답일까요.. ioe #include <stdio.h> #include <string.h> int main() { //input int count; int cost[1100]; int cost1; int min; int max; double out; double in; double result; int i = 0, j = 0; scanf("%d", &count); if (count <= 100 && count >= 0) { for (i = 1; i <= count; i++) { out = 101; result = 0; in = 0; scanf("%d %d", &max, &min); if (max >= min&&max <= 1000 && min >= 1) { for (j = 1; j <= max; j++) { scanf("%d", &cost1); if (cost1 <= 100 && cost1 >= 0) { cost[j] = cost1; in = in + (double)cost[j]; if (j >= min) { result = in / (j); if (result < out) out = result; } } } memset(cost, 0, sizeof(int)*max); max = 0; min = 0; cost1=0; } printf("%.10lf\n", out); } } return 0; } 8년 전
2개의 댓글이 있습니다. hyunhwan 자신의 해법에 대한 설명을 적어주시면 보다 빠른 시간에 다른 회원들의 답을 받으실 수 있을 것으로 생각됩니다. 의도하신건지 모르겠지만 해당 코드는 무조건 cost[0] 부터 cost[j]까지의 (다시 말해서, 맨 앞에서부터 연속된 임의의 구간) 평균치를 구할 수 밖에 없습니다. 다음의 경우에는 10이 답이 나와야 하는데 `53.3333333'이 나오네요. 1 3 1 100 50 1 8년 전 link ioe 아. 문제를 잘못 봤네요. 8년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
ioe
8년 전