您的位置:首页 > 其它

pku 1007

2010-06-17 10:10 295 查看
Source Code
Problem: 1007 User: cug_fish2008
Memory: 300K Time: 47MS
Language: C++ Result: Accepted
Source Code
#include <iostream>
using namespace std;
void change(char &x,char &y);
struct Node
{
char h[50];
int sum;
};
int main()
{
Node k[101];
Node ko[101];
char ch;
int m,n;
cin>>n>>m;
if(n<1||m<1)return 0;
for(int i=1;i<=m;i++)
{cin>>k[i].h;k[i].sum=0;ko[i]=k[i];}
if(n==1)goto exit;
for(int i=1;i<=m;i++)
{
int tatal=0;
bool b=true;
while(b)
{
int x_t=0;
for(int j=0;j<=n-2;j++)
{
if(k[i].h[j]>k[i].h[j+1])
{change(k[i].h[j],k[i].h[j+1]);x_t++;tatal++;}
}
if(x_t==0)b=false;
}
ko[i].sum=tatal;
}
exit:
int cpr[101];
Node kok[101];
for(int i=1;i<=m;i++)cpr[i]=1;
for(int i=2;i<=m;i++)
{
for(int j=1;j<i;j++)
{
if(ko[i].sum>=ko[j].sum)cpr[i]++;
else cpr[j]++;
}
}
for(int i=1;i<=m;i++)
kok[cpr[i]]=ko[i];
for(int i=1;i<=m;i++)
cout<<kok[i].h<<endl;
return 0;
}
void change(char &x,char &y)
{
char t;
t=x;x=y;y=t;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struct user c