BCTEST14 - Ốc sên

Người Gửi: Darkness

  • Problem:

Có một con ốc sên dưới mặt đất. Nó muốn leo lên đỉnh một cái cột bằng gỗ với chiều cao V mét, tính từ mặt đất. Trong một ngày, nó có thể leo lên A mét, tuy nhiên, trong mỗi đêm nó ngủ, nó lại bị tụt xuống B mét. Xác định số ngày cần thiết để con ốc sên leo tới đỉnh.


Input

Ba số nguyên cách nhau bởi dấu cách: A,B và V (1≤B<A≤V≤1 000 000 000).
Output
Một số nguyên duy nhất là số ngày cần thiết để con ốc sên leo tới đỉnh
Example:
Input
2 1 5
Output:
4

Input
5 1 6
Output:
2
Input
100 99 1000000000
Output:
999999901
  • Solution:

Bài này ta thấy A-B là chênh lệch mỗi ngày của con ốc sên di chuyển nên ta áp dụng như sau:
- Gọi: V-B là độ cao cần thiết để con ốc sên cần x ngày để lên tới đỉnh:
+ Nếu (V-B) chia hết cho (A-B): Thì con ốc sên đó cần x = (V-B)/(A-B) ngày để đạt được V-B độ cao. Và ngay sáng hôm sau con ốc sên lên A mét nữa sẽ lên tới đỉnh. (Luôn đúng vì A>B -> V-B+A>V).
+ Nếu không chia hết thì: x = [(V-B)/(A-B)]+1 (Cần thêm 1 ngày nữa)

  • Code:


#include <iostream>
using namespace std;
 
int main ()
{
    long A, B, V;
    cin>>A>>B>>V;
    if (A==V) cout<<"1";
    else
    {
        if ((V-B)%(A-B)==0) cout<<(V-B)/(A-B);
        else cout<<(V-B)/(A-B)+1;
    }
    return 0;
}



JAVA:


Share this

Related Posts

Previous
Next Post »

1 nhận xét:

nhận xét