using namespace std;
int n,m,i,j,k,x,b,w,p;
int a[10001];
int main()
{cin>>n>>m;
for(i=1;i<=n;i++)
cin>>a[i];
for(i=1;i<=m;i++)
{p=0;
for(j=n;j>=2;j--)
if(a[j-1]>a[j])
{b=999999;
for(k=j+1;k<=n;k++)
if(a[k]<b&&a[k]>a[j])
{b=a[k];w=k;
}
if(b!=999999)
{swap(a[j],a[w]);x++;p=1;}
}
}
for(i=1;i<=n;i++)
cout<<a[i];
system("pause");
return 0;
}
不能不给分
#include<iostream>
using namespace std;
int m,n,a[10001];
void pl(int x)
{
int i,k[m-x+1],b=0,j;
for(i=1;i<=m;i++)
{
for(j=1;j<=x;j++)
if(i==a[j])
break;
if(j==x+1)
{
b++;
k[b]=i;
}
}
for(i=x+1,b=1;i<=m;i++,b++)
a[i]=k[b];
}
int main()
{
int i,j,k,x;
cin>>m>>n;
for(i=1;i<=m;i++)
cin>>a[i];
for(i=1;i<=n;i++)
{
a[m]++;
for(j=m;j>=2;j--)
{
if(a[j]>m)
a[j-1]++;
else
{
for(x=1;x<j;x++)
if(a[x]==a[j])
break;
if(x!=j)
{
a[j]++;
j++;
}
else
break;
}
}
pl(j);
}
for(i=1;i<m;i++)
cout<<a[i]<<" ";
cout<<a[m];
system("pause");
return 0;
}
否则不给分[/quote]
原来是个骗子
#include<iostream>
using namespace std;
int main()
{
int n,i,j,k,a[10001],t,m,g[10001],l,q,r;
cin>>n>>m;
for(i=1;i<=n;i++)
cin>>a[i];
for(l=1;l<=m;l++)
{
j=n-1;
q=n;
while(a[j]>a[j+1]) j--;
for(i=j+1;i<=n;i++)
if((a[i]-a[j]<q)&&(a[i]-a[j]>0))
{q=a[i]-a[j];r=i;}
t=a[r];
a[r]=a[j];
a[j]=t;
for(i=j+1;i<=j+(n-j)/2;i++)
{
t=a[i];
a[i]=a[n+j+1-i];
a[n+j+1-i]=t;
}
}
for(i=1;i<=n-1;i++)
cout<<a[i]<<" ";
cout<<a[n]<<endl;
//system("pause");
return 0;
}