Lập trình C++.Có n viên bi được xếp thành một hàng ngang. Mỗi viên bi được sơn một trong haimàu xanh hoặc đỏ. Người ta muốn sơn lại màu xanh hoặc đỏ của một số viên bi (có thể sơnlại toàn bộ, hoặc có thể không sơn viên nào cả) sao cho sau khi sơn thì các viên bi màu xanhđều nằm bên trái các viên bi màu đỏ. Tất nhiên sau khi sơn có thể các viên bị chỉ toàn màu xanh hoặc toàn màu đỏ. Yêu cầu: Hãy tìm cách sơn lại ít viên bi nhất sao cho dãy bi sau khi sơn thỏa mãn các viên bi xanh đều nằm bên trái các viên bi đỏ.
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> a(n);
for(int i = 0; i < n; i++) cin >> a[i];
int count_red = 0, total_paint = 0;
for(int i = 0; i < n; i++) {
if(a[i] == 1) count_red++;
else total_paint += count_red;
}
cout << total_paint;
return 0;
}