1 条题解
-
0
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
- 上传者