Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
有没有大虾路过,进来看看呀,如此正确的代码怎么就WA呢,思路清晰。。#include <iostream> #include <stdio.h> #include <algorithm> #include <string> using namespace std; struct xxx { int id; string name; char role; int sum; }people[25],max; int index[15]; int l,r; int d,m,s; bool cmp(struct xxx u,struct xxx v) { if(u.role<v.role) return true; else if(u.role==v.role && u.id<v.id) return true; return false; } void deal() { int i,k; int countD=0,countG=0,countM=0,countS=0; int flagD,flagG,flagM,flagS; int captain; sort(people+1,people+22+1,cmp); for(i=1;i<=22;i++) { if(people[i].role=='D') { if(countD==0) flagD=i; countD++; } else if(people[i].role=='G') { if(countG==0) flagG=i; countG++; } else if(people[i].role=='M') { if(countM==0) flagM=i; countM++; } else if(people[i].role=='S') { if(countS==0) flagS=i; countS++; } } if(countD<d ||countG<1 ||countM<m ||countS<s) printf("IMPOSSIBLE TO ARRANGE\n"); else { index[1]=flagG; k=2; for(i=1;i<=d;i++) index[k++]=flagD+i-1; for(i=1;i<=m;i++) index[k++]=flagM+i-1; for(i=1;i<=s;i++) index[k++]=flagS+i-1; max.sum=-1; for(i=1;i<=11;i++) { if(people[index[i]].sum>=max.sum) { max.sum=people[index[i]].sum; captain=i; } } index[0]=index[captain]; cout<<people[index[0]].id<<' '<<people[index[0]].name<<' '<<people[index[0]].role<<endl; cout<<people[index[1]].id<<' '<<people[index[1]].name<<' '<<people[index[1]].role<<endl; for(i=2;i<=11;i++) if(i==captain) continue; else cout<<people[index[i]].id<<' '<<people[index[i]].name<<' '<<people[index[i]].role<<endl; } printf("\n"); } int main() { int i; char tem; int x; while(scanf("%d",&x) && x) { for(i=1;i<=22;i++) people[i].sum=0; for(i=1;i<=22;i++) { if(i==1) { people[i].id=x; cin>>people[i].name; } else cin>>people[i].id>>people[i].name; getchar(); people[i].role=getchar(); while((tem=getchar())==' ') { scanf("%d",&l); getchar(); scanf("%d",&r); people[i].sum+=r-l+1; } } scanf("%d",&d);getchar(); scanf("%d",&m);getchar(); scanf("%d",&s); deal(); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator