#include <iostream>
#include <string>
#include <vector>
#include <cstring>
//谢谢博友翻译
using namespace std;
int main()
{
vector<int> gs;
vector<string> jg;
while(1)
{
int NUM;
cin>>NUM;
if(NUM==0)
{
break;
}
gs.push_back(NUM);
int wz[NUM];
//memset(wz,1,sizeof(wz));//产生错误
for(int i=0;i<NUM;i++)
{
wz[i]=1;
}
vector<string> s;
for(int i=0;i<NUM;i++)
{
string str;
cin>>str;
s.push_back(str);
}
/*
for(int i=0;i<s.size();i++)
{
cout<<s[i]<<endl;
}*/
for(int i=0;i<NUM;i++)
{
for(int j=0;j<NUM;j++)
{
if(i!=j)
{
if(s[i].size()>s[j].size())
{
wz[i]++;
}else if((s[i].size()==s[j].size())&&(i>j))
{
wz[i]++;
}
}
}
}
/*
for(int i=0;i<NUM;i++)
{
cout<<wz[i]<<endl;
}*/
for(int i=1;i<=NUM;i++)
{
for(int j=0;j<NUM;j++)
{
if((wz[j]==i)&&((i%2)==1))
{
//cout<<" "<<s[j]<<endl;
jg.push_back(s[j]);
break;
}
}
}
for(int i=NUM;i>=1;i--)
{
for(int j=0;j<NUM;j++)
{
if((wz[j]==i)&&((i%2)==0))
{
//cout<<s[j]<<endl;
jg.push_back(s[j]);
break;
}
}
}
}
/*
for(int i=0;i<jg.size();i++)
{
cout<<jg[i]<<endl;
}*/
int shu=0;
for(int i=0;i<gs.size();i++)
{
cout<<"SET "<<i+1<<endl;
for(int j=shu;j<(shu+gs[i]);j++)
{
cout<<jg[j]<<endl;
}
shu=shu+gs[i];
}
return 0;
}
POJ 2013 Symmetric Order G++
最新推荐文章于 2020-09-16 16:11:14 发布