HDU 1263 水果 (用简单的C来写的)

题目链接

思路:按优先级进行两次排序;

          输出排序后的第一个产地,然后进行一次for循环,每一次都与前面相比较,重点在最后一个。

AC代码如下:

#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
struct f
{
    char x[81];
    char y[81];
    int z;
}t;
int a,c,b,sum,mn=9999999;
int main()
{
    scanf("%d",&a);
    while(a--)
    {
        scanf("%d",&b);
        struct f v[b];
        for(int i=0;i<b;i++)
        {
            scanf("%s%s%d",&v[i].x,&v[i].y,&v[i].z);
        }
        for(int i=0;i<b;i++)
        {
              for(int j=0;j<b;j++)
              {
                  if(strcmp(v[i].y,v[j].y)<0)
                  {
                      t=v[i];
                      v[i]=v[j];
                      v[j]=t;
                  }
                  else if(strcmp(v[i].y,v[j].y)==0)
                  {
                      if(strcmp(v[i].x,v[j].x)<0)
                      {
                          t=v[i];
                      v[i]=v[j];
                      v[j]=t;
                      }
                  }
              }
        }
        printf("%s\n",v[0].y);
        for(int i=1;i<b;i++)
        {
            if(strcmp(v[i].y,v[i-1].y)==0)
            {
               if(strcmp(v[i].x,v[i-1].x)==0)
               {
                   v[i].z=v[i].z+v[i-1].z;
                   if(i==b-1)
                   {
                       printf("   |----%s(%d)\n",v[i].x,v[i].z);
                   }
               }
               else
               {
                    printf("   |----%s(%d)\n",v[i-1].x,v[i-1].z);
                   if(i==b-1)
                   {
                         printf("   |----%s(%d)\n",v[i].x,v[i].z);
                   }


               }
            }
            else
            {
                printf("   |----%s(%d)\n",v[i-1].x,v[i-1].z);
                printf("%s\n",v[i].y);
                if(i==b-1)
                {
                    printf("   |----%s(%d)\n",v[i].x,v[i].z);
                }
            }
        }
        if(a!=0)
        {
         printf("\n");
        }


    }




}

猜你喜欢

转载自blog.csdn.net/soul778888/article/details/80313569