基础训练 完美的代价

完美的代价

/************提示:是考的贪心策略*****************/
#include<iostream>
using namespace std;
int main(){
    int n, flag=0, cnt=0;
    cin>>n;
    string str;
    cin>>str;
    for(int i=0; i<n-1; i++){
        for(int j=n-1; j>=i; j--){
            if(j==i){
                if(flag==1||str.size()%2==0){
                    cout<<"Impossible"<<endl;
                    return 0;
                }
                flag=1;
                cnt+=str.size()/2-i;
            }else if(str[i]==str[j]){
                for(int k=j; k<n-1; k++){
                    swap(str[k], str[k+1]);
                    cnt++;
                }
                n--;
                break; 
            }
        }       
    }
    cout<<cnt<<endl;
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/A-Little-Nut/p/10350991.html