'commit'
This commit is contained in:
43
C++专题课程/基础知识/完美的代价.cpp
Normal file
43
C++专题课程/基础知识/完美的代价.cpp
Normal file
@@ -0,0 +1,43 @@
|
||||
#include<bits/stdc++.h>
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
char a[8005];
|
||||
char b[8005];
|
||||
long long i,j,len,t=1,t1=0,sum=0;
|
||||
scanf("%lld\n",&len);
|
||||
for(i=0;i<len;i++)
|
||||
{scanf("%c",&a[i]);
|
||||
b[i]=a[i];
|
||||
}
|
||||
|
||||
for(i=0;i<len-1;i++)
|
||||
for(j=i+1;j<len;j++)
|
||||
if(b[i]>b[j]){char c=b[i];b[i]=b[j];b[j]=c;}
|
||||
|
||||
for(i=0;i<len;i++)
|
||||
if(b[i]==b[i+1]&&i<len){t++;}
|
||||
else
|
||||
{ if(t%2==1)t1++;
|
||||
if(t1>=2)break;
|
||||
t=1; }
|
||||
if(t1>=2)printf("Impossible\n");
|
||||
else
|
||||
{ i=0;
|
||||
for(j=len-1;j>i;j--)
|
||||
{ for(t=j;t>i;t--)
|
||||
if(a[t]==a[i])
|
||||
{sum+=j-t;
|
||||
b[0]=a[t];
|
||||
while(t<j)
|
||||
{a[t]=a[t+1];t++;}
|
||||
a[j]=b[0];i++;break;
|
||||
}
|
||||
if(t==i&&j!=i){j++;char c=a[i];a[i]=a[i+1];a[i+1]=c;sum++;}
|
||||
|
||||
}
|
||||
printf("%lld\n",sum);
|
||||
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user