AtCoder Beginner Contest 006 C - スフィンクスのなぞなぞ
問題URL
解法
大人か老人か赤ちゃんのうちの一つを固定してしまえば、普通の鶴亀算になります。であるので、回程度の計算で答えを得ることができます。
ACしたコード
#include <bits/stdc++.h> using namespace std; int main(){ int N,M;cin >> N >> M; for(int i = 0;i <= N;i++){ if(i * 2 > M){ break; } int remainAsi = M - 2 * i; int remainHito = N - i; if(remainAsi >= remainHito * 3 && remainHito - (remainAsi - remainHito * 3) >= 0){ cout<<i<<" "<<remainHito - (remainAsi - remainHito * 3)<<" "<<(remainAsi - remainHito * 3)<<endl;; return 0; } } cout<<-1<<" "<<-1<<" "<<-1<<endl; }