View Code of Problem 100

    #include<stdio.h>
    #include<string.h>
     
    struct music
    {
    	char name[50];
    	int m,s;
    	int score;
    }num[105];
     
    int main()
    {
    	int n, t,temp;
    	char s[50],a[50];
    	int x, y,i,j;
    	scanf("%d", &n);
    	while(n != 0)
    	{
    		for(i = 0; i < n; i++)
    		{
    			scanf("%s", num[i].name);
    			scanf("%d:%d", &num[i].m, &num[i].s);
    			num[i].s += 60 * num[i].m;
    			num[i].score = 0;
    		}
    		scanf("%d", &t);
    		while(t--)
    		{
    			scanf("%s", s);
    			scanf("%d:%d", &x, &y);
    			y += x * 60;
    			for(i = 0; i < n ;i++)
    				if(strcmp(s, num[i].name) == 0)
    					num[i].score += 5.0 * y / num[i].s;
    		}
    		for(i = 1; i < n ; i++)
    		{
    			 for(j=n-1;j>=i;j--)
				 {
					 if(num[j].score>num[j-1].score)
					 {
						 strcpy(a,num[j].name);
						 strcpy(num[j].name,num[j-1].name);
						 strcpy(num[j-1].name,a);
						 temp=num[j].m;
						 num[j].m=num[j-1].m;
						 num[j-1].m=temp;
						  temp=num[j].s;
						 num[j].s=num[j-1].s;
						 num[j-1].s=temp;
						  temp=num[j].score;
						 num[j].score=num[j-1].score;
						 num[j-1].score=temp;
					 }
				 }
    		}


			for(i = 1; i < n ; i++)
    		{
    			 for(j=n-1;j>=i;j--)
				 {
					 if(num[j].score==num[j-1].score)
					 {
					    if(strcmp(num[j].name,num[j-1].name)<0)
						{
						  strcpy(a,num[j].name);
						  strcpy(num[j].name,num[j-1].name);
						  strcpy(num[j-1].name,a);
						  temp=num[j].m;
						  num[j].m=num[j-1].m;
						  num[j-1].m=temp;
						  temp=num[j].s;
						  num[j].s=num[j-1].s;
						  num[j-1].s=temp;
						  temp=num[j].score;
						  num[j].score=num[j-1].score;
						  num[j-1].score=temp;
						}
					 }
				 }
    		}


			for(i=0;i<n;i++)
			{
				printf("%s %d\n",num[i].name,num[i].score);

			}

    		scanf("%d", &n);
    	}
    	
    	return 0;
     } 

Double click to view unformatted code.


Back to problem 100