結果

問題 No.67 よくある棒を切る問題 (1)
コンテスト
ユーザー vjudge1
提出日時 2026-09-25 15:21:54
言語 C++23
(gcc 15.3.0 + boost 1.92.0 + ACL)
コンパイル:
g++-15 -O2 -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
WA  
実行時間 -
コード長 4,896 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,550 ms
コンパイル使用メモリ 340,152 KB
実行使用メモリ 9,924 KB
最終ジャッジ日時 2026-09-25 15:22:46
合計ジャッジ時間 50,570 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 13 WA * 13 TLE * 4
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function 'void sol()':
main.cpp:97:46: warning: 'goodies' may be used uninitialized [-Wmaybe-uninitialized]
   97 |         cout << fixed << setprecision(15) << goodies << "\n";
      |                                              ^~~~~~~
main.cpp:86:33: note: 'goodies' was declared here
   86 |         ld l = 0.001, r = 1e18, goodies;
      |                                 ^~~~~~~

ソースコード

diff #
raw source code

#include <bits/stdc++.h>
#include <unordered_set>
using namespace std;
#define pb push_back
#define Pbk pop_back
#define p_fr push_front
#define P_fr pop_front
#define eb emplace_back
#define fi first
#define se second
#define mp make_pair
#define vec vector
typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
#pragma GCC optimize("Ofast,unroll-loops,inline")
#pragma GCC optimize("fast-math,no-stack-protector,no-exceptions,no-rtti")
#pragma GCC target("sse","sse2","sse3","ssse3","sse4.1","sse4.2","popcnt")
#pragma GCC target("avx","avx2","fma","bmi","bmi2","lzcnt")
#pragma GCC optimize("align-functions=16,align-jumps=8,align-loops=8")

const int N = 1e5 + 500;
//const int INF = LLONG_MAX-1;
const int INF = INT_MAX-1;
const int MOD = 1000000007;
//const int MOD = 25445893580447; //hashing only
#define pii pair<int, int>

int ceildiv(int a, int b){
	if (b < 0) {
        a = -a;
        b = -b;
    }
    if (a >= 0) {
        return (a + b - 1) / b;
    } else {
        return a / b;
    }
}

int floordiv(int a, int b){
	int q = a / b;
    int r = a % b;

	if (r != 0 and ((r > 0) != (b > 0))) {
        q--;
    }
    return q;

}

string cts(char a){
	return string(1, a);
}

vec<int> indexedset(N);
const int LOG = 21;

void insertv(int i, int val){
	for (; i < N; i += i & -i) indexedset[i] += val;
}

int order_of_ki(int x){
	if (x <= 1) return 0;
	int sum = 0;
	for (int i = x-1; i > 0; i -= i & -i) sum += indexedset[i];
	return sum;
}

int find_by_ordur(int k){
	int x = 0;
	for (int i = LOG; i >= 0; i--){
		int nxt = x + (1 << i);
		if (nxt < N and indexedset[nxt] < k){
			x = nxt;
			k -= indexedset[x];
		}
	}
	return x+1;
}

void sol(){
	int n; cin >> n;
	vec<ld> a(n); for(int i = 0; i < n; i++) cin >> a[i];
	int k; cin >> k;
	ld l = 0.001, r = 1e18, goodies;
	int cnt = 300;
	while(cnt--){
		ld mid = l + (r-l) / 2;
//		cout << l << " " << mid << " " << r << '\n';
		int cnt = 0;
		for(int i = 0; i < n; i++) cnt += a[i] / mid;
		if(cnt >= k){
			goodies = mid; l = mid;
		} else r = mid;
	}
	cout << fixed << setprecision(15) << goodies << "\n";
}

signed main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
//	freopen(".INP", "r", stdin);
//	freopen(".OUT", "w", stdout);
	int t = 1;
//	cin >> t;
	while(t--){
		sol();
	}
}
//                                                                                             RSSQQM
//                                                                                             TVTRPKK
//                                                                                            STRRPLJ
//                                                                                             NPOLLJ
//                                                                                             LQOIL
//                                                                                            NNQNIL
//                                                                                           OOQQMIL
//                                                                                          SSSRROMN
//                                                                                       WWVVUUTTTSS
//                                                                                    WWWWWVVVUUUUTTS
//  EKPRSX                                                                         XWWWWWWWVVVUUVVUTS
//FHNOQUWWWWXXXXXXXX                                                            XWWWWWWWWWVVUUUVVVUUT
//MNNOQSSUVWWWWWWWXXXXXXXXXWW                                               XXWWWWWWWWWWVVUUUUVVVVVUT
// NPRRRRSSSTVWWWWWWWXXXXXXXXXXXXXXXX                                   XXXXWWWWWWWWWVVVUTUUUVVVVVVT
//   SRRRRRSSSSTUVWWWWWWWXXXXXXXXXXXXXXXXXXXXXY                  WXXXXXXWWWWWWWWWWWVVUTTTTUUVVVVVVUT
//   TSRRRRRRRSSSSSSUVWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWVVVUTTTTTTTUUUVVVVUT
//    TSRRRRRRRRRSSSSSSSTUVVWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWVVUTSSTTTTTTTUUUUUUUUTS
//      SRRRRRRRRRRRRSSSSSSSSTTUVVWWWWWWWWWWXXXXXXXXXXXXXXXXWWWWWWWWWWWVVVUTTSSSSSSTTTTTTTUUUUUUTT
//        SRRRRRRRRRRRRRSSSSSSSSSSSSTTUUVVWWWWWWWWWWWWWWWWWWWWWWWVVVUTTSSSSSSSSSSSSSTTTTTTTTTTTTT
//          SRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSTTTTTUUUUUUTTTTTSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTT
//            SSRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
//              SSSRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRRRRSSSSS
//                  SSRRRRQQQRQQRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSRRRRRRRRRRRSSS
//                      SSSRRRQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSST
//                          SSSSRRRRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRSSS
//                                SSSSSSRRRRRQQQQQQQQQQQQQQQQQQQRRRRRRSSSSS
//                                           SSSSSSSSSSSSSSSSTT
//
0