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;
}