| ||||||||||
| 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 | |||||||||
各位大牛,请帮我看看哪错了#include <iostream>
#include <cstdlib>
using namespace std;
struct student
{
int score;
char name[31];
};
student s[10001];
int compare (const void * a, const void * b)
{
if(((student *)a)->score==((student *)b)->score)
return strcmp(((student *)a)->name,((student *)b)->name);
return ( ((student*)a)->score < ((student *)b)->score);
}
int comp (const void * a, const void * b)
{
return strcmp(((student *)a)->name,((student *)b)->name);
}
int bsch(student s[],int n,char str[])
{
int l=0,r=n-1;
if(strcmp(str,s[0].name)==0)
return 0;
while(l<r)
{
int m=(l+r+1)/2;
if(strcmp(str,s[m].name)==0)
return m;
else if(strcmp(str,s[m].name)<0)
r=m-1;
else if(strcmp(str,s[m].name)>0)
l=m;
}
return -1;
}
int main()
{
int n;
cin>>n;
int i,j,k;
char ch=getchar();
for(i=0;i<n;++i)
gets(s[i].name);
int test;
cin>>test;
for(k=0;k<test;++k)
{
qsort(s,n,sizeof(student),comp);
int target;
student str[10001];
for(i=0;i<n;++i)
{
cin>>str[i].score;
char c=getchar();
gets(str[i].name);
int p;
p=bsch(s, n,str[i].name);
s[p].score+=str[i].score;
if(strcmp(str[i].name,"Li Ming")==0)
{
p=bsch(s, n,"Li Ming");
target=s[p].score;
}
}
qsort (s, n, sizeof(student), compare);
for(i=0;i<n;++i)
if(s[i].score==target && strcmp(s[i].name,"Li Ming")==0)
j=i;
i=j;
while(i>=0)
{
int t=i-1;
if(t<0)
{
cout<<1<<endl;
break;
}
if(s[i].score==s[t].score)
--i;
else
{
cout<<i+1<<endl;
break;
}
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator