View Code of Problem 100

#include <bits/stdc++.h>
using namespace std;
struct GeQu
{
	string name;
	double zsj;
	double fs;
};
bool cmp(GeQu a,GeQu b)
{
	if(a.fs!=b.fs)
		return a.fs>b.fs;
	else
		return a.name<b.name;
}
int main() 
{	
	int n;
	while(cin>>n)
	{
		if(n==0)
			break;
		int i,j,index,m;
		double a,b;
		struct GeQu gq[n];
		string str;
		for(i=0;i<n;i++)
		{	double sum=0;
			cin>>str;
			scanf("%lf:%lf",&a,&b);
			sum=a*60+b;
			gq[i].name=str;
			gq[i].zsj=sum;
		}
		cin>>m;
		for(i=0;i<m;i++)
		{
			double sum=0;
			cin>>str;
			scanf("%lf:%lf",&a,&b);
			sum=a*60+b;
			for(j=0;j<n;j++)
			{
				if(gq[j].name==str)
				{
					if(sum>0&&sum<gq[j].zsj*0.2)
						break;
					else if(sum<gq[j].zsj*0.4)
					{
						gq[j].fs+=1;
						break;
					}
					else if(sum<gq[j].zsj*0.6)
					{
						gq[j].fs+=2;
						break;
					}
					else if(sum<gq[j].zsj*0.8)
					{
						gq[j].fs+=3;
						break;
					}
					else if(sum<gq[j].zsj)
					{
						gq[j].fs+=4;
						break;
					}
					else if(sum==gq[j].zsj)
					{
						gq[j].fs+=5;
						break;
					}
				}
			}
		}
		sort(gq,gq+n,cmp);
		for(i=0;i<n;i++)
			cout<<gq[i].name<<" "<<gq[i].fs<<endl;
	}
}

Double click to view unformatted code.


Back to problem 100