#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
template < class S, class T> inline S min_L( S a,T b) {
return a<= b? a: b;
}
template < class S, class T> inline S moddw_L( S a, const T b) {
a % = b;
if ( a < 0 ) {
a + = b;
}
return a;
}
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
int distanceBetweenBusStops( vector< int > & dist, int S, int T) {
int i;
int j;
int N;
int res1 = 0 ;
int res2 = 0 ;
N = dist.size ( ) ;
i = S;
while ( i ! = T) {
res1 + = dist[ i] ;
i = ( i+ 1 ) % N;
}
i = S;
while ( i ! = T) {
i = moddw_L( ( i- 1 ) ,N) ;
res2 + = dist[ i] ;
}
return min_L( res1, res2) ;
}
}
;
// cLay varsion 20190914-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// int distanceBetweenBusStops(vector<int>& dist, int S, int T) {
// int i, j, N;
// int res1 = 0, res2 = 0;
//
// N = dist.size();
// i = S;
// while(i != T){
// res1 += dist[i];
// i = (i+1) % N;
// }
// i = S;
// while(i != T){
// i = (i-1) %% N;
// res2 += dist[i];
// }
//
// return min(res1, res2);
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQ+IGlubGluZSBTIG1pbl9MKFMgYSxUIGIpewogIHJldHVybiBhPD1iP2E6YjsKfQp0ZW1wbGF0ZTxjbGFzcyBTLCBjbGFzcyBUPiBpbmxpbmUgUyBtb2Rkd19MKFMgYSwgY29uc3QgVCBiKXsKICBhICU9IGI7CiAgaWYoYSA8IDApewogICAgYSArPSBiOwogIH0KICByZXR1cm4gYTsKfQojZGVmaW5lIG1haW4gZHVtbXlfbWFpbgppbnQgbWFpbigpewogIHJldHVybiAwOwp9CiN1bmRlZiBtYWluCmNsYXNzIFNvbHV0aW9uewogIHB1YmxpYzoKICBpbnQgZGlzdGFuY2VCZXR3ZWVuQnVzU3RvcHModmVjdG9yPGludD4mIGRpc3QsIGludCBTLCBpbnQgVCl7CiAgICBpbnQgaTsKICAgIGludCBqOwogICAgaW50IE47CiAgICBpbnQgcmVzMSA9IDA7CiAgICBpbnQgcmVzMiA9IDA7CiAgICBOID0gZGlzdC5zaXplKCk7CiAgICBpID0gUzsKICAgIHdoaWxlKGkgIT0gVCl7CiAgICAgIHJlczEgKz0gZGlzdFtpXTsKICAgICAgaSA9IChpKzEpICUgTjsKICAgIH0KICAgIGkgPSBTOwogICAgd2hpbGUoaSAhPSBUKXsKICAgICAgaSA9bW9kZHdfTCgoaS0xKSxOKTsKICAgICAgcmVzMiArPSBkaXN0W2ldOwogICAgfQogICAgcmV0dXJuIG1pbl9MKHJlczEsIHJlczIpOwogIH0KfQo7Ci8vIGNMYXkgdmFyc2lvbiAyMDE5MDkxNC0xCgovLyAtLS0gb3JpZ2luYWwgY29kZSAtLS0KLy8gI2RlZmluZSBtYWluIGR1bW15X21haW4KLy8ge30KLy8gI3VuZGVmIG1haW4KLy8gCi8vIGNsYXNzIFNvbHV0aW9uIHsKLy8gcHVibGljOgovLyAgIGludCBkaXN0YW5jZUJldHdlZW5CdXNTdG9wcyh2ZWN0b3I8aW50PiYgZGlzdCwgaW50IFMsIGludCBUKSB7Ci8vICAgICBpbnQgaSwgaiwgTjsKLy8gICAgIGludCByZXMxID0gMCwgcmVzMiA9IDA7Ci8vIAovLyAgICAgTiA9IGRpc3Quc2l6ZSgpOwovLyAgICAgaSA9IFM7Ci8vICAgICB3aGlsZShpICE9IFQpewovLyAgICAgICByZXMxICs9IGRpc3RbaV07Ci8vICAgICAgIGkgPSAoaSsxKSAlIE47Ci8vICAgICB9Ci8vICAgICBpID0gUzsKLy8gICAgIHdoaWxlKGkgIT0gVCl7Ci8vICAgICAgIGkgPSAoaS0xKSAlJSBOOwovLyAgICAgICByZXMyICs9IGRpc3RbaV07Ci8vICAgICB9Ci8vIAovLyAgICAgcmV0dXJuIG1pbihyZXMxLCByZXMyKTsKLy8gICB9Ci8vIH07Cg==