1 条题解

  • 0
    @ 2025-4-14 18:43:47

    C :

    #include<stdio.h>
    int main()
    {
    	int T,N[10],M[1000],i=0,j=0,m[10],t,l,k,sum;
    	scanf("%d",&T);
    	while(T--)   //循环T组数据
    	{
    		sum=0;
    		scanf("%d %d",&N[i],&M[i]);
    		for(j=0;j<N[i];j++)
    			scanf("%d",&m[j]);
    
    		for(l=0;l<N[i]-1;l++)
    			for(k=l+1;k<N[i];k++)
    				if(m[l]>m[k])
    				{
    					t=m[l];
    					m[l]=m[k];
    					m[k]=t;
    				}
    		
    
    				for(l=0;l<N[i];l++)
    				{
    					sum+=m[l];
    					if(sum>M[i])
    						break;
    				}
    				printf("%d\n",l);
    
    
    			i++;
    	}
    
    
    
    	return 0;
    
    }
    

    C++ :

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    
    using namespace std;
    #define maxn 100 + 6
    int six[maxn];
    
    int main()
    {
        int i,j,k;
        int t,n,m;
        int ans;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d%d",&n,&m);
            for(i=0;i<n;i++)
            {
                scanf("%d",six+i);
            }
            sort(six,six+n);
            ans=0;
            for(i=0;i<n;i++)
            {
                if(m-six[i]>=0)
                {
                    ans++;
                    m-=six[i];
                }
            }
            printf("%d\n",ans);
        }
        return 0;
    }
    
    

    Java :

    import java.util.Scanner;
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int T = sc.nextInt();
    		for(int i=0;i<T;i++){
    			int N = sc.nextInt();
    			int M = sc.nextInt();
    			int[] arr ;
    			arr = new int[N] ;
    			for(int k=0;k<arr.length;k++){
    				arr[k] = sc.nextInt();
    			}
    			int temp = 0;
    			for(int  m = 0;m<arr.length-1;m++){
    				for(int mm=0;mm<arr.length-1-m;mm++){
    					if(arr[mm]>arr[mm+1]){
    						temp = arr[mm];
    						arr[mm]= arr[mm+1];
    						arr[mm+1]=temp;
    					}
    				}
    			}
    			int sum = 0;
    			for(int k=0;k<arr.length;k++){
    				sum+=arr[k];
    				if(sum>M)
    				{
    					System.out.println(k);
    					k=100;
    				}
    				else if(k==arr.length-1&&sum<=M){
    					System.out.println(N);
    				}
    			}
    			
    			
    		}
    	}
    }
    
    • 1

    信息

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