1027. MJ, Nowhere to Hide
写了比较长的代码,不过竟然一遍就Accept,甚慰吾心。312KB的运存是我水平的极限了,还好n<=20,此题的关键应该就是按字母排序。
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
struct ID{
string id;
string IP;
};
struct newID{
string mid;
string mj;
};
bool cmp(newID a,newID b)
{
int la=a.mid.length(),lb=b.mid.length();
for(int i=0;i<la||i<lb;i++)
{
if(a.mid[i]!=b.mid[i])
return a.mid[i]<b.mid[i];
}
return la<lb;
}
int main()
{
int n;
while(cin>>n&&n)
{
ID acmer[21];
newID acme[11];
bool acm[21];
int count=0;
for(int i=0;i<n;i++)
{
cin>>acmer[i].id>>acmer[i].IP;
acm[i]=true;
}
for(int i=0;i<n;i++)
{
if(acm[i])
for(int j=i+1;j<n;j++)
{
if(acm[j])
{
if(acmer[i].IP==acmer[j].IP)
{
acme[count].mid=acmer[i].id;
acme[count].mj=acmer[j].id;
count++;
acm[i]=acm[j]=false;
}
}
}
}
sort(acme,acme+count,cmp);
for(int i=0;i<count;i++)
{cout<<acme[i].mj<<" is the MaJia of "<<acme[i].mid<<endl;}
cout<<endl;
}
return 0;
}