1 条题解
-
0
C :
#include<stdio.h> int n,x,a[110]; int main() { scanf("%d %d",&n,&x); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<n;i++) for(int j=i+1;j<=n;j++) if(a[i]>a[j]) { int t=a[i]; a[i]=a[j]; a[j]=t; } int s=0; for(int i=1;i<=n;i++) { if(s+a[i]>x) { printf("%d",i-1); break; } s+=a[i]; if(i==n&&s<=x) printf("%d",i); else if(i==n) printf("%d",i-1); } return 0; }C++ :
#include <bits/stdc++.h> using namespace std; int main(){ int n,x,a[100],i,r = 0; cin>>n>>x; for(i = 0;i < n;i++){ cin>>a[i]; } sort(a,a+n); for(i = 0;i < n;i++){ if(r + a[i] > x){ r = r + a[i]; cout<<i<<endl; break; }else{ r = r + a[i]; } } if(r < x){ cout<<n<<endl; } }Pascal :
var a,b,c,d,i,j,t:longint; e:array[1..10000] of longint; begin read(a,b); for i:=1 to a do read(e[i]); for i:=1 to a do for j:=i+1 to a do if e[j]<e[i] then begin t:=e[j];e[j]:=e[i];e[i]:=t;end; for i:=1 to a do if b>=e[i] then begin inc(c);b:=b-e[i];end else break; write(c); end.Java :
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int x = sc.nextInt(); int[] a = new int[n]; for(int i =0;i<n;i++){ a[i] = sc.nextInt(); } getNum(a,x); } public static void getNum(int[] a,int x){ int t ;int sum = 0; for(int i = 1;i<a.length;i++){ for(int j = 0;j<a.length-i;j++){ if(a[j]>a[j+1]){ t = a[j]; a[j] = a[j+1 ]; a[j+1] = t; } } } int m = 0 ; for(int i = 0;i<a.length;i++){ sum = sum + a[i]; if(sum <= x){ m =i+1; } } System.out.println(m); } }Python :
s = input().split() a = input().split() n = int(s[0]) x = int(s[1]) su = 0 l = [] for i in range(0, n): a[i] = int(a[i]) a.sort() for i in range(0, n): su += a[i] if su <= x: l.append(i) print(len(l))
- 1
信息
- ID
- 436
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者