#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
template < class S, class T> inline S chmin( S & a, T b) {
if ( a> b) {
a= b;
}
return a;
}
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
int cnt[ 100001 ] ;
class Solution{
public :
int minSwaps( vector< int > & A) {
int N, i, k, res= 1073709056 ;
N = A.size ( ) ;
cnt[ 0 ] = 0 ;
for ( i= 0 ; i< ( N) ; i++ ) {
cnt[ i+ 1 ] = cnt[ i] + A[ i] ;
}
k = cnt[ N] ;
for ( i= ( k) ; i< ( N+ 1 ) ; i++ ) {
chmin( res, k - ( cnt[ i] - cnt[ i- k] ) ) ;
}
return res;
}
}
;
// cLay varsion 20190817-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// int cnt[100001];
//
// class Solution {
// public:
// int minSwaps(vector<int>& A) {
// int i, k, N, res = int_inf;
// N = A.size();
//
// cnt[0] = 0;
// rep(i,N) cnt[i+1] = cnt[i] + A[i];
// k = cnt[N];
// rep(i,k,N+1) res <?= k - (cnt[i]-cnt[i-k]);
//
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQ+IGlubGluZSBTIGNobWluKFMgJmEsIFQgYil7CiAgaWYoYT5iKXsKICAgIGE9YjsKICB9CiAgcmV0dXJuIGE7Cn0KI2RlZmluZSBtYWluIGR1bW15X21haW4KaW50IG1haW4oKXsKICByZXR1cm4gMDsKfQojdW5kZWYgbWFpbgppbnQgY250WzEwMDAwMV07CmNsYXNzIFNvbHV0aW9uewogIHB1YmxpYzoKICBpbnQgbWluU3dhcHModmVjdG9yPGludD4mIEEpewogICAgaW50IE4sIGksIGssIHJlcz0xMDczNzA5MDU2OwogICAgTiA9IEEuc2l6ZSgpOwogICAgY250WzBdID0gMDsKICAgIGZvcihpPTA7aTwoTik7aSsrKXsKICAgICAgY250W2krMV0gPSBjbnRbaV0gKyBBW2ldOwogICAgfQogICAgayA9IGNudFtOXTsKICAgIGZvcihpPShrKTtpPChOKzEpO2krKyl7CiAgICAgIGNobWluKHJlcywgayAtIChjbnRbaV0tY250W2kta10pKTsKICAgIH0KICAgIHJldHVybiByZXM7CiAgfQp9CjsKLy8gY0xheSB2YXJzaW9uIDIwMTkwODE3LTEKCi8vIC0tLSBvcmlnaW5hbCBjb2RlIC0tLQovLyAjZGVmaW5lIG1haW4gZHVtbXlfbWFpbgovLyB7fQovLyAjdW5kZWYgbWFpbgovLyAKLy8gaW50IGNudFsxMDAwMDFdOwovLyAKLy8gY2xhc3MgU29sdXRpb24gewovLyBwdWJsaWM6Ci8vICAgaW50IG1pblN3YXBzKHZlY3RvcjxpbnQ+JiBBKSB7Ci8vICAgICBpbnQgaSwgaywgTiwgcmVzID0gaW50X2luZjsKLy8gICAgIE4gPSBBLnNpemUoKTsKLy8gCi8vICAgICBjbnRbMF0gPSAwOwovLyAgICAgcmVwKGksTikgY250W2krMV0gPSBjbnRbaV0gKyBBW2ldOwovLyAgICAgayA9IGNudFtOXTsKLy8gICAgIHJlcChpLGssTisxKSByZXMgPD89IGsgLSAoY250W2ldLWNudFtpLWtdKTsKLy8gCi8vICAgICByZXR1cm4gcmVzOwovLyAgIH0KLy8gfTsK