CF248A Cupboards 题解

Content

在一个走廊上有 \(2n\) 扇门,排成两列分居左右。有个人很无聊,随意地开关了一些门,使得这些门看起来十分乱。现在请开关一些门,使得这些门恢复原来整齐的状态(要么都开、要么都关、要么一边的 \(n\) 扇门都开,另一边的 \(n\) 扇门都关)。求最少需要操作的次数。

数据范围:\(2\leqslant n\leqslant 10^4\)

Solution

只需要枚举使得 \(2n\) 扇门整齐的四种情况需要操作的次数,再取最小值即可。

Code

int main() {
	getint(n);
	_for(i, 1, n)	getint(l[i]), getint(r[i]);
	_for(i, 1, n)	ans1 += (1 - l[i]) + r[i], ans2 += l[i] + (1 - r[i]), ans3 += l[i] + r[i], ans4 += (1 - l[i]) + (1 - r[i]);
	ans = min(ans1, min(ans2, min(ans3, ans4)));
	writeint(ans);
	return 0;
}
posted @ 2021-12-17 14:19  Eason_AC  阅读(23)  评论(0)    收藏  举报