基础训练 完美的代价

完美的代价

/************提示:是考的贪心策略*****************/
#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;
}
原文地址:https://www.cnblogs.com/A-Little-Nut/p/10350991.html