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)
{
	return a.fs>b.fs;
}
int main() 
{	
	int n;
	while(cin>>n)
	{
		if(n==0)
			break;
		int i,j,index,m;
		struct GeQu gq[n];
		string str,name,time,temp=" ";
		for(i=0;i<n;i++)
		{	double sum=0;
			getline(cin,str); 
			index=str.find(temp);
			name=str.substr(0,index);
			time=str.substr(index+1,str.size());
			sum=(time[1]-'0')*60+(time[3]-'0')*10+time[4]-'0';
			gq[i].name=name;
			gq[i].zsj=sum;
		}
		cin>>m;
		for(i=0;i<m;i++)
		{
			double sum=0;
			getline(cin,str);
			index=str.find(temp);
			name=str.substr(0,index);
			time=str.substr(index+1,str.size());
			sum=(time[1]-'0')*60+(time[3]-'0')*10+time[4]-'0';
			for(j=0;j<n;j++)
			{
				if(gq[i].name==name)
				{
					if(sum<=gq[i].zsj*0.2)
					{
						gq[i].fs+=0;
						break;
					}
					else if(sum<=gq[i].zsj*0.4)
					{
						gq[i].fs+=1;
						break;
					}
					else if(sum<=gq[i].zsj*0.6)
					{
						gq[i].fs+=2;
						break;
					}
					else if(sum<=gq[i].zsj*0.8)
					{
						gq[i].fs+=3;
						break;
					}
					else if(sum<gq[i].zsj)
					{
						gq[i].fs+=4;
						break;
					}
					else if(sum=gq[i].zsj)
					{
						gq[i].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