結果
| 問題 |
No.5 数字のブロック
|
| ユーザー |
rensyuu88
|
| 提出日時 | 2020-02-02 22:51:15 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 3 ms / 5,000 ms |
| コード長 | 936 bytes |
| コンパイル時間 | 127 ms |
| コンパイル使用メモリ | 29,696 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-09-18 21:29:55 |
| 合計ジャッジ時間 | 1,149 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 34 |
ソースコード
#include<stdio.h>
void sort(int*,int,int);
void swap(int*,int*);
int main(){
int L,N;
int saidai;
int W[10000];
scanf("%d",&L);
scanf("%d",&N);
for(int i=0;i<N;i++){
scanf("%d",&W[i]);
}
sort(W,0,N-1);
for(int i=0;i<N;i++){
L-=W[i];
if(L<0){
break;
}
saidai++;
}
printf("%d",saidai);
return 0;
}
void swap(int*x,int*y){
int tmp;
tmp=*x;
*x=*y;
*y=tmp;
}
void sort(int a[],int left,int right){
int i,j;
int pivot;
i=left;
j=right;
pivot=a[(right+left)/2];
while(1){
while(a[i]<pivot){
i++;
}
while(a[j]>pivot){
j--;
}
if(i>=j){
break;
}
swap(&a[i],&a[j]);
i++;
j--;
}
if(left<i-1){
sort(a,left,i-1);
}
if(j+1<right){
sort(a,j+1,right);
}
}
rensyuu88