codeforce/#614 (Div.2)
Codeforces Round #614 (Div.2 ) B. JOE is on TV!
파란제이
2020. 2. 1. 22:53
JOE가 퀴즈 쇼에 나가 최대의 상금을 받는다면, 얼마를 받을 지 출력하는 문제입니다.
라운드의 생존자가 s명, 오답자가 t명일 때 JOE는 t/s 달러 만큼의 돈을 받게 됩니다.
2명일 때는 1/2 + 1/1 = 1.5 입니다.
3명일 때는 2가지 방법이 있습니다.
1) 1명씩 탈락하는 경우
1/3 + 1/2 + 1/1 = 11/6 가 됩니다.
2) 2명이 탈락하는 경우
2/3 + 1/1 = 10/6 이 됩니다.
여기서 우리는 1/3 + 1/2 > 2/3 인 것을 알 수 있고, 각 라운드에 1명씩만 탈락하는 것이 2명 이상 탈락하는 것보다 이득임을 알 수 있습니다. 따라서 정답은 1/1 + 1/2 + ... + 1/n 이 됩니다.
#include <iostream>
using namespace std;
int main(){
int input;
cin >> input ;
long double result = 0;
for (int i = input ; i >=1 ; i --){
result += (long double) 1 / (long double) i;
}
cout << result << endl;
return 0;
}
반응형