結果
問題 | No.5 数字のブロック |
ユーザー |
![]() |
提出日時 | 2016-07-07 16:18:29 |
言語 | C90 (gcc 12.3.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 906 bytes |
コンパイル時間 | 109 ms |
コンパイル使用メモリ | 22,496 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-12 23:14:46 |
合計ジャッジ時間 | 3,293 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 RE * 15 |
コンパイルメッセージ
main.c: In function ‘main’: main.c:18:9: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 18 | fgets(str, sizeof(str), stdin); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ main.c:21:9: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 21 | fgets(str, sizeof(str), stdin); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ main.c:25:9: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 25 | fgets(str, sizeof(str), stdin); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ソースコード
#include <stdio.h> #include <stdlib.h> #include <string.h> int compare_int(const void *a, const void *b){ return *(int*)a - *(int*)b; } int main(void){ int i, count=0; unsigned long int block_sum = 0; int box = 0; int block_num = 0; int block[10000]={0}; char str[10000], *b; //箱の大きさ fgets(str, sizeof(str), stdin); box = atoi(str); //ブロックの数 fgets(str, sizeof(str), stdin); block_num = atoi(str); //各ブロックサイズ fgets(str, sizeof(str), stdin); b = strtok(str, " "); block[0] = atoi(b); for(i = 1; i < block_num; i++){ b = strtok(NULL, " "); block[i] = atoi(b); } //block[0] ~ block[block_num - 1] //各ブロックを昇順 qsort(block, block_num, sizeof(int), compare_int); for(i = 0; i < block_num; i++){ block_sum += block[i]; if(block_sum <= box){ count++; } else{ break; } } printf("%d\n", count); return 0; }