zoukankan      html  css  js  c++  java
  • Hdu 1263 水果

    水果

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 6986    Accepted Submission(s): 2748

    Problem Description

    夏天来了~~好开心啊,呵呵,好多好多水果~~
    Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了.

    Input

    第一行正整数N(0<N<=10)表示有N组测试数据.
    每组测试数据的第一行是一个整数M(0<M<=100),表示工有M次成功的交易.其后有M行数据,每行表示一次交易,由水果名称(小写字母组成,长度不超过80),水果产地(小写字母组成,长度不超过80)和交易的水果数目(正整数,不超过100)组成.

    Output

    对于每一组测试数据,请你输出一份排版格式正确(请分析样本输出)的水果销售情况明细表.这份明细表包括所有水果的产地,名称和销售数目的信息.水果先按产地分类,产地按字母顺序排列;同一产地的水果按照名称排序,名称按字母顺序排序.
    两组测试数据之间有一个空行.最后一组测试数据之后没有空行.

    Sample Input

    1

    5

    apple shandong 3

    pineapple guangdong 1

    sugarcane guangdong 1

    pineapple guangdong 3

    pineapple guangdong 1

    Sample Output

    guangdong

       |----pineapple(5)

       |----sugarcane(1)

    shandong

       |----apple(3)

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    struct SS
    {
        char s1[85],s2[85];
        int n;
    }s[105];
    bool cmp(SS a,SS b)
    {
        if(strcmp(a.s1,b.s1)<0)
            return true;
        else if(strcmp(a.s1,b.s1)==0&&strcmp(a.s2,b.s2)<0)
            return true;
        return false;
    }
    int main()
    {
        int N;
        scanf("%d",&N);
        while(N--)
        {
            int M;
            scanf("%d",&M);
            int i;
            for(i=0;i<M;i++)
                scanf("%s %s %d",s[i].s2,s[i].s1,&s[i].n);
            sort(s,s+M,cmp);
            char t1[85],t2[85];
            strcpy(t1,s[0].s1);strcpy(t2,s[0].s2);
            int sum=s[0].n;
            printf("%s
    ",s[0].s1);
            for(i=1;i<M;i++)
            {
                if(strcmp(s[i].s1,t1)==0)
                {
                    if(strcmp(s[i].s2,t2)==0)
                        sum+=s[i].n;
                    else
                    {
                        printf("   |----%s(%d)
    ",t2,sum);
                        sum=s[i].n;
                        strcpy(t2,s[i].s2);
                    }
                }
                else
                {
                    printf("   |----%s(%d)
    ",t2,sum);
                    printf("%s
    ",s[i].s1);
                    strcpy(t1,s[i].s1);
                    strcpy(t2,s[i].s2);
                    sum=s[i].n;
                }
            }
            printf("   |----%s(%d)
    ",t2,sum);
            if(N)
                printf("
    ");
        }
        return 0;
    }
    

      

  • 相关阅读:
    需求获取过程中的逆向沟通
    程序员==生 涯 篇
    算法设计
    灯的启示:微软对唐骏的面试题
    使用Gzip压缩提升WEB服务器性能
    简历误区
    招聘编辑的七道面试题
    web2.0及其相关技术
    经典面试题助你成功就业
    逗号网站推广营销策略
  • 原文地址:https://www.cnblogs.com/zhangliu/p/7057999.html
Copyright © 2011-2022 走看看