#include<bits/stdc++.h> using namespace std; int main() {ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); string A; deque<int>U; cin>>A; const int n=A.size(); int IloscA=0,IloscB=0; long long wynik=0; for(int i=0;i<A.size();i++) { if(A[i]=='a'){IloscA++;U.push_back(i);} else{IloscB++;} } if(IloscA%2==1&&IloscB%2==1){cout<<-1<<endl;return 0;} while(U.size()>1) { int a=U[0]; int b=U.back(); U.pop_front(); U.pop_back(); wynik+=max(n-a-b-1,a-n+b+1); } if(U.size()==1) { wynik+=abs(U[0]-(n/2)); } cout<<wynik<<endl; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include<bits/stdc++.h> using namespace std; int main() {ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); string A; deque<int>U; cin>>A; const int n=A.size(); int IloscA=0,IloscB=0; long long wynik=0; for(int i=0;i<A.size();i++) { if(A[i]=='a'){IloscA++;U.push_back(i);} else{IloscB++;} } if(IloscA%2==1&&IloscB%2==1){cout<<-1<<endl;return 0;} while(U.size()>1) { int a=U[0]; int b=U.back(); U.pop_front(); U.pop_back(); wynik+=max(n-a-b-1,a-n+b+1); } if(U.size()==1) { wynik+=abs(U[0]-(n/2)); } cout<<wynik<<endl; return 0; } |