基础训练 完美的代价

完美的代价

/************提示:是考的贪心策略*****************/
#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;
}
posted @ 2019-02-03 20:49  A-Little-Nut  阅读(174)  评论(0编辑  收藏  举报