C - スフィンクスのなぞなぞ / AtCoderBeginnerContest #006
#include <iostream> using namespace std; void Solve(int n, int m) { int i, j; bool flg=false; for (int i=0; i<=1; ++i) { for (int j=0; j<=n; ++j) if (i+j<=n && 2*(n-i-j)+3*i+4*j==m) { flg=true; cout << n-i-j << " " << i << " " << j << endl; break; } if (flg) break; } if (!flg) cout << -1 << " " << -1 << " " << -1 << endl; } int main(void) { int n, m; cin >> n >> m; Solve(n,m); return 0; }
老人の足は3本なので0人か1人かの2通りを考えれば良い。
次に赤ちゃんを中心に答えと一致する組み合わせ探索していく。
見つかれば各々の人数を出力、見つからなければ-1を出力。
~了~