1 条题解

  • 0
    @ 2025-2-14 20:57:48

    C :

    #include<stdio.h>
    #include<stdlib.h>
    struct num{
    	int n,l,w;
    }nu[1000];
    
    int cmp(const void * x,const void * y){
    	struct num * a=(struct num *)x;
    	struct num * b=(struct num *)y;
    	if(a->n!=b->n)
    		return (a->n < b->n)?-1:1;
    	else if(a->l!=b->l)
    		return (a->l < b->l)?-1:1;
    	else
    		return (a->w < b->w)?-1:1;
    }
    
    int main()
    {
    	int N;
    	scanf("%d",&N);
    	while(N--){
    		int m,i,t;
    		scanf("%d",&m);
    		for(i=0;i<m;i++){
    			scanf("%d%d%d",&nu[i].n,&nu[i].l,&nu[i].w);
    			if(nu[i].l<nu[i].w){
    				t=nu[i].l;
    				nu[i].l=nu[i].w;
    				nu[i].w=t;
    			}
    		}
    		qsort(nu,m,sizeof(nu[0]),cmp);
    		for(i=0;i<m;i++){
    			if(nu[i].n==nu[i+1].n&&nu[i].l==nu[i+1].l&&nu[i].w==nu[i+1].w){
    				nu[i].n=0;
    				nu[i].l=0;
    				nu[i].w=0;
    			}
    		}
    		for(i=0;i<m;i++)
    			if(nu[i].n!=0 && nu[i].l!=0 && nu[i].w!=0)
    				printf("%d %d %d\n",nu[i].n,nu[i].l,nu[i].w);
    	}
    	return 0;
    }
    

    C++ :

    #include<stdio.h>
    #include<algorithm>
    using namespace std;
    
    struct student{
    int num,length,width;
    }stu[10010];
    bool cmp(student a , student b)
    {
        if(a.num<b.num) return true;
        else if(a.length<b.length&&a.num==b.num) return true;
        else if(a.length==b.length&&a.num==b.num&&a.width<b.width) return true;
        return false;
    }
    int main()
    {
        int N,i,j,m,t;
        scanf("%d",&m);
        while(m--){
            scanf("%d",&N);
            for(i=0;i<N;i++){
                scanf("%d %d %d",&stu[i].num,&stu[i].length,&stu[i].width);
                if(stu[i].length<stu[i].width){
                    t=stu[i].length;
                    stu[i].length=stu[i].width;
                    stu[i].width=t;
                }
                for(j=0;j<i;j++)
                   if(stu[i].num==stu[j].num&&stu[i].length==stu[j].length&&stu[i].width==stu[j].width)
                    {i--;N--;}
             }
               sort(stu,stu+N,cmp);
               for(i=0;i<N;i++)
                printf("%d %d %d\n",stu[i].num,stu[i].length,stu[i].width);
              }
            return 0;
    }
    
    • 1

    信息

    ID
    566
    时间
    3000ms
    内存
    64MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者