結果

問題 No.67 よくある棒を切る問題 (1)
コンテスト
ユーザー Matsumoto Naoki
提出日時 2017-12-28 11:04:40
言語 C(gnu17)
(gcc 15.2.0)
コンパイル:
gcc-15 -O2 -std=gnu17 -Wno-error=implicit-function-declaration -Wno-error=implicit-int -Wno-error=incompatible-pointer-types -Wno-error=int-conversion -DONLINE_JUDGE -o a.out _filename_ -lm
実行:
./a.out
結果
RE  
実行時間 -
コード長 487 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 65 ms
コンパイル使用メモリ 38,528 KB
実行使用メモリ 5,888 KB
最終ジャッジ日時 2026-07-21 18:13:56
合計ジャッジ時間 4,937 ms
ジャッジサーバーID
(参考情報)
judge3_1 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other WA * 5 RE * 25
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c: In function 'main':
main.c:11:9: warning: implicit declaration of function 'solve' [-Wimplicit-function-declaration]
   11 |         solve();
      |         ^~~~~
main.c: At top level:
main.c:25:6: warning: conflicting types for 'solve'; have 'void()'
   25 | void solve() {
      |      ^~~~~
main.c:11:9: note: previous implicit declaration of 'solve' with type 'void()'
   11 |         solve();
      |         ^~~~~

ソースコード

diff #
raw source code

#include <stdio.h>
long int K;
unsigned N;
long int L[10000];
int main(){
	scanf("%d",&N);
	for(int i=0;i<N;i++){
		scanf("%d",&L[i]);
	}
	scanf("%d",&K);
	solve();
}
int C(int x){
	int num = 0;
	for(int i=0;i<N;i++){
		num += (int)(L[i] / x );
	}
	if(num >= K){
		return 1;
	}else{
		return 0;
	}
}

void solve() {
	double lb =0;
	double ub = 1000;
	for(int i =0; i<1000; i++){
		double mid = (lb+ub)/2;
		if(C(mid) == 1){
			lb = mid;
		}else{
			ub = mid;
		}
	}
	printf("%f\n",lb);
}
0