7/22標準


<2869>カタツムリが上に行きたい
私が書いたコード
#include <iostream>

using namespace std;

int main() {
	cin.tie(NULL); 
	ios::sync_with_stdio(false);

	// A B V      V + x*B <= A*x  V <= (A-B)*x >> V/(A-B) <= x
	// 1. 아침 +2 밤 -1 2. 아침 +2 밤 -1
	int A, B, V, x = 1, T;
	cin >> A >> B >> V;
	T = A;
	while (1)
	{
		if (V - T <= 0) // 3 2 1 0
			break;
		T += A - B;
		x++;
	}
	cout << x;

	return 0;
}
whileはドアの中で続けなければならないので、大数に入るとタイムアウトが発生します.
だからコードを調べてみました.
#include <iostream>

using namespace std;

int main() {
	cin.tie(NULL); 
	ios::sync_with_stdio(false);

	int A, B, V;
	int day;

	cin >> A >> B >> V;
	day = (V - B - 1) / (A - B) + 1;
	cout << day;

	return 0;
}
A-Bは1日でカタツムリが上がる高さです.
でも到着した日には滑らないのでカタツムリ
上昇した総高さはV-Bである.
だから(V-B)/(A-B)でいいんだけど、離れられないなら1日もっと歩くから+1.
しかし、ちょうど分かれていれば、上昇した状態でもう1日進むので、分子の中で-1をして正確にします.
ps.こちらを見つける方法も探しましょう.
cin.tie(NULL); 銀色cinとcoutの縛りを緩めます.
cinでデータを読み出す場合は,出力バッファの内容を空にするのではなく,先に入力を受け入れる.
ios::sync_with_stdio(false); CとC++バッファを分離する役割を果たしています.
2つのフレーズでcinとcoutをより速く書くことができます.