210106|白駿1712|C++


1712号:損益バランスポイント
#include <iostream>
using namespace std;

int main() {
	int a, b, c;
	cin >> a >> b >> c;

	int sonik = 0;
	while(true) {
		if (a + b * sonik < c * sonik) {
			cout << sonik;
			return 0;
		}

		if (sonik > 0 && ((a + b * sonik) - (a + b * (sonik - 1)) > ((c * sonik) - (c * (sonik - 1))))) {
			cout << "-1";
			break;
		}
		sonik++;
	}

	return 0;
}
当初,x値に相当する品数が増加し,売上高の増加の程度が総費用増加の情報を下回ると,損益のバランスが取れないため例外処理を実施した.
なんと、間違った答えが・・・もっと簡単な方法を見つけた.
#include <iostream>
using namespace std;

int main() {
    int A, B, C;
    int n = 1;
    cin >> A >> B >> C;
    if (B >= C) {
        cout << -1;
        return 0;
    }

    cout << A / (C - B) + 1;
}
固定料金から物価と可変料金を差し引いた後、1を足すと損益のバランスが取れます.また、可変費用が代金より大きければ損益分岐点が出ないため、その分の前処理を行った.