문제 : [[problem:FESTIVAL]]
축제를 하는데 N개의 대여가능한 날짜가 나열되어있고
최소 L팀이 각각 날마다 공연할 수 있도록
L개이상의 연속된 날짜를 선택합니다.
즉 3팀이라면 4개의 날을 선택할수도 있다는 뜻.
이때 평균비용이 가장 적은 값을 구하는 것입니다.
6일이 대여가능하고 최소 3팀이라면
각 비용이 굵게 3 1 2 3 1 1 이면
3 1 1 하면 5/3 = 1.6666
2 3 1 1 이면 7/4 1.75
1 2 3 1 1 이면 8/5 = 1.6 으로
답은1.6이 되고 이를 출력해주는 문제입니다.
//FESTIVAL
/* 1.C test case <=100
2.L team <=1000
3.N days <= 1000
4.costs of each days <=100 (natural n)
*/
#include
int main() {
int T; //test case
int cnt;
double answer[100];
int L,N;
int costs[1000];
double min;
double avr;
int sum=0;
int i,j,temp;
int rentaldays; // Be careful sum/rentaldays is integer !
scanf("%d",&T);
cnt=0;
while( cnt < T ) { // T times loop
// ---------------------------------------------------inputs
scanf("%d %d", &N, &L); // days, teams N>L
for(i=0;i< N; i++) {
scanf("%d",&costs[i]);
}
min=1000; // always bigger than avg
for(i=0;i<= N-L;i++) {
sum=0;
rentaldays=L;
if(min == 1) // most minimum value
break;
for(j=i ; j< L+i; j++) {
sum = sum + costs[j];
}
avr = (double)sum / rentaldays;
if(min> avr) {
min=avr;
}
for(rentaldays=L+1;rentaldays<=N-i;rentaldays++) {
sum+= costs[rentaldays-1+i];
avr = (double)sum / rentaldays;
if(min>avr) {
min=avr;
}
avr = (double)sum / rentaldays;
}
}
answer[cnt]= min;
cnt++;
}
for(i=0;i<T;i++) {
printf("%.7f\n",answer[i]);
}
return 0;
htamop
계속 시도하고 디버깅하고 확인해도 도저히 모르겠어서
질문합니다. 밥도 못먹고 아 답답하네요 ㅠㅠ
문제 : [[problem:FESTIVAL]]
축제를 하는데 N개의 대여가능한 날짜가 나열되어있고
최소 L팀이 각각 날마다 공연할 수 있도록
L개이상의 연속된 날짜를 선택합니다.
즉 3팀이라면 4개의 날을 선택할수도 있다는 뜻.
이때 평균비용이 가장 적은 값을 구하는 것입니다.
6일이 대여가능하고 최소 3팀이라면
각 비용이
굵게 3 1 2 3 1 1 이면
3 1 1 하면 5/3 = 1.6666
2 3 1 1 이면 7/4 1.75
1 2 3 1 1 이면 8/5 = 1.6 으로
답은1.6이 되고 이를 출력해주는 문제입니다.
//FESTIVAL
/* 1.C test case <=100
2.L team <=1000
3.N days <= 1000
4.costs of each days <=100 (natural n)
*/
#include
int main() {
int T; //test case
int cnt;
}
13년 전