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