1 条题解
-
0
C :
#include<stdio.h> int main() { int L, N, sum = 0; int A[600] = { 0 }; while (scanf("%d %d", &L, &N) != EOF) { for (int i = 0; i < N; i++) { scanf("%d", &A[i]); sum += A[i]; } if (sum < L) { printf("impossible"); } else { sum = 0; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (A[i] > A[j]) { A[i] ^= A[j]; A[j] ^= A[i]; A[i] ^= A[j]; } } } int i; for (i = 0; i < N; i++) { if (L>sum) { sum += A[i]; } else { break; } } printf("%d\n", i); sum = 0; } } return 0; }
C++ :
#include<stdio.h> #include<stdlib.h> #include<algorithm> int cmp(const void* a,const void* b) //从大到小 { return *(int *)b - *(int *)a; } int main() { int L,N,i,j,count,k; int ss[700]; while(scanf("%d%d",&L,&N)!=EOF) { for(i=0;i<N;i++) { scanf("%d",&ss[i]); } qsort(ss,N,sizeof(ss[0]),cmp); // for(i=0;i<N;i++) // printf("%d ",ss[i]); count=0;k=0;j=0; for(i=0;i<N;i++) { if(ss[i]+k < L) { k+=ss[i]; count++; } else { count++; j=1; printf("%d\n",count); break; } } if(j==0) printf("impossible\n"); } return 0; }
Java :
import java.util.Scanner; class Main { public static void main(String[] args) { Scanner first=new Scanner(System.in); while(first.hasNext()) { int L=first.nextInt(); int N=first.nextInt(); int[] Ai=new int[N]; for (int i = 0; i < N; i++) { Ai[i]=first.nextInt(); } //Arrays.sort(Ai); for (int i = 0; i < Ai.length-1; i++) { for (int j = i+1; j < Ai.length; j++) { if(Ai[i]<Ai[j]) { int s=Ai[i]; Ai[i]=Ai[j]; Ai[j]=s; } } } int AiSum=0; int count=0; boolean flag=true; /*for(int i=N-1;i>=0;i--) { AiSum+=Ai[i]; count++; if(AiSum>=L) { System.out.println(count); flag=false; break; } }*/ for (int i = 0; i < Ai.length; i++) { if(Ai[i]+AiSum < L) { AiSum+=Ai[i]; count++; } else { count++; System.out.println(count); flag=false; break; } } if(flag) { System.out.println("impossible"); } } } }
- 1
信息
- ID
- 679
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者