Thứ Ba, 8 tháng 1, 2019

UVa 00573 - The Snail * (simulation, beware of boundary cases!)

Link: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=7&page=show_problem&problem=514
Sol:
#include <cstdio>
using namespace std;
int main() {
int h, u, d, f;
while (scanf("%d %d %d %d", &h, &u, &d, &f), h || u || d || f) {
double currU = u;
double distMin = u * (f / 100.0);
double currH = 0;
int currDay = 0;
do {
currDay++;
//printf("init: %lf climbed: %lf ", currH, currU);
currH += currU;
//printf("afterU: %lf ", currH);
if (currH > h){
printf("success on day ");
break;
}
currH -= d;
//printf("afterD: %lf\n",currH);
if (currH < 0){
printf("failure on day ");
break;
}
currU -= distMin;
if (currU < 0)
currU = 0;
} while (true);
printf("%d\n",currDay);
}
return 0;
}

Không có nhận xét nào:

Đăng nhận xét

Bài G - Educatioal Round 62

Đề bài: Bạn được cho 1 đồ thị vô hướng đặc biệt. Nó bao gồm $2n$ đỉnh được đánh số từ 1 đến 2n. Dưới đây là một số đặc tính của đồ thị: + ...