栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 3680 E

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 3680 E

#include <iostream>#include <cstdio>#include <map>#include <string>#include <cstring>#include <algorithm>#include <vector>using namespace std;int mtx[555][555];char ss[555][111];int main(){ map<string,int> lab; int n; int cc=0; while (scanf("%d",&n)==1) { cc++; if(cc>1) printf("n"); memset(mtx,0,sizeof(mtx)); lab.clear(); int pt[555]= {0},sup[555]= {0},goal[555]= {0},urank[1555]; for(int i=0; i<n ; i++) { for(int j=i+1; j<n ; j++) { char t1[111],t2[111]; int s1,s2; scanf("%s%d:%d%s",t1,&s1,&s2,t2); string str1=string(t1); string str2=string(t2); if(lab.find(str1)==lab.end()) { strcpy(ss[lab.size()],t1); int sz=lab.size(); lab[str1]=sz; } if(lab.find(str2)==lab.end()) { strcpy(ss[lab.size()],t2); int sz=lab.size(); lab[str2]=sz; } mtx[lab[str1]][lab[str2]]=s1; mtx[lab[str2]][lab[str1]]=s2; if(s1>s2) pt[lab[str1]]+=3; else if(s1==s2) { pt[lab[str1]]+=1; pt[lab[str2]]+=1; } else { pt[lab[str2]]+=3; } sup[lab[str1]]+=s1-s2; sup[lab[str2]]+=s2-s1; goal[lab[str1]]+=s1; goal[lab[str2]]+=s2; } } int m; scanf("%d",&m); for(int i=0;i<m;i++) { char s[555]; scanf("%s",s); if(lab.find(string(s))!=lab.end()) urank[lab[string(s)]]=i; } int rank[555]; for(int i=0; i<n; i++) rank[i]=i; for(int i=0; i<n; i++) for(int j=i+1; j<n; j++) if(pt[rank[i]]<pt[rank[j]]) swap(rank[i],rank[j]); for(int i=0; i<n-1; i++) { int ipt[555]= {0},isup[555]= {0},igoal[555]={0}; int head=i,tail=i; while(pt[rank[i]]==pt[rank[tail+1]]) { tail++; if(tail==n-1) break; } i=tail; tail++; for(int j=head; j<tail; j++) for(int k=j+1; k<tail; k++) { int u=rank[j],v=rank[k]; isup[u]+=mtx[u][v]-mtx[v][u]; isup[v]+=mtx[v][u]-mtx[u][v]; igoal[u]+=mtx[u][v]; igoal[v]+=mtx[v][u]; if(mtx[u][v]>mtx[v][u]) { ipt[u]+=3; } else if(mtx[u][v]<mtx[v][u]) { ipt[v]+=3; } else { ipt[u]++; ipt[v]++; } } for(int j=head; j<tail; j++) for(int k=j+1; k<tail; k++) { if(ipt[rank[j]]<ipt[rank[k]]) { swap(rank[j],rank[k]); } else if(ipt[rank[j]]==ipt[rank[k]]) { if(isup[rank[j]]<isup[rank[k]]) { swap(rank[j],rank[k]); } else if(isup[rank[j]]==isup[rank[k]]) { if(igoal[rank[j]]<igoal[rank[k]]) { swap(rank[j],rank[k]); } else if(igoal[rank[j]]==igoal[rank[k]]) { if(sup[rank[j]]<sup[rank[k]]) { swap(rank[j],rank[k]); } else if(sup[rank[j]]==sup[rank[k]]) { if(goal[rank[j]]<goal[rank[k]]) { swap(rank[j],rank[k]); } else if(goal[rank[j]]==goal[rank[k]]) { if(urank[rank[j]]>urank[rank[k]]) { swap(rank[j],rank[k]); } } } } } } } } for(int i=0; i<n ; i++) printf("%sn",ss[rank[i]]); } return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号