//http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1330
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
usingnamespacestd;
structPlayer
...{
stringname;
intscore;
};
vector<Player>v;
intfindName(stringname)
...{
for(inti=0;i<v.size();i++)
if(v[i].name==name)returni;
return-1;
}
boolcmp(Playera,Playerb)
...{
if(a.score==b.score)
returna.name<b.name;
else
returna.score>b.score;
}
voidaddPlayer(stringname,intscore)
...{
Playert;
t.name=name;
t.score=score;
v.push_back(t);
}
voidoutputPlayer()
...{
cout<<1<<":"<<v[0].name;
for(inti=1;i<v.size();i++)
...{
if(v[i].score==v[i-1].score)
...{
cout<<""<<v[i].name;
}
else
...{
cout<<endl;
cout<<i+1<<":"<<v[i].name;
}
}
cout<<endl;
}
boolrun(intnow)
...{
intn;
cin>>n;
if(n==0)returnfalse;
v.clear();
inti,m=n*(n-1)/2;
for(i=0;i<m;i++)
...{
strings,t;
boolf;
cin>>s>>t>>f;
intj=findName(s);
intk=findName(t);
if(f==true)
...{
if(j==-1)
addPlayer(s,3);
else
v[j].score+=3;
if(k==-1)addPlayer(t,0);
}
else
...{
if(j==-1)
addPlayer(s,1);
else
v[j].score++;
if(k==-1)
addPlayer(t,1);
else
v[k].score++;
}
}
if(n>=2)
...{
sort(v.begin(),v.end(),cmp);
outputPlayer();
}
returntrue;
}
intmain()
...{
intnow=1;
while(run(now++));
return0;
}
本文深入探讨了排序算法和数据结构的应用,包括常见的排序算法(如快速排序、归并排序)及其复杂度分析,以及数据结构(如二叉树、链表、哈希表)在实际场景中的实现和优化策略。
2597

被折叠的 条评论
为什么被折叠?



