概要
両開きの戸を持つ戸棚が n 個ある。
左右のそれぞれの戸について、全てを同じ状態にしたい。
(左は全て閉じているか空いているか && 右は全て閉じているか空いているか)
戸の初期状態が与えられるので、動かす戸の最小数を答えよ。
解法
左右それぞれについて、全て閉めるか全て開けるのに必要な数を求めて足します。
空いている戸の数を a とすると、min( n, n - a ) 。
コード
#define REP( i, m, n ) for ( int i = (int)( m ); i < (int)( n ); ++i ) int main() { cin.tie( 0 ); ios::sync_with_stdio( false ); int n; cin >> n; int cnt1 = 0, cnt2 = 0; REP( i, 0, n ) { int a, b; cin >> a >> b; cnt1 += a; cnt2 += b; } cout << min( n - cnt1, cnt1 ) + min( n - cnt2, cnt2 ) << endl; return 0; }