Submission #56335984


Source Code Expand

#include <algorithm>
#include <cstdio>
#include <vector>

template <typename T, typename F> T bisect(T ok, T bad, F pred) {
  if (!pred(ok)) {
    return ok;
  }

  while (bad - ok > 1) {
    T mid = ok + (bad - ok) / 2;
    (pred(mid) ? ok : bad) = mid;
  }
  return bad;
}

int main() {
  size_t n;
  unsigned long m;
  scanf("%zu %lu", &n, &m);

  std::vector<unsigned long> a(n);
  for (auto& ai: a) {
    scanf("%lu", &ai);
  }

  unsigned long oo = 1'000'000'000'000'000UL;
  auto res = bisect(0UL, oo, [&](auto x) -> bool {
    unsigned long sum = 0;
    for (auto ai: a) {
      sum += std::min(ai, x);
    }
    return sum <= m;
  });

  if (res < oo) {
    printf("%ld\n", res - 1);
  } else {
    printf("infinite\n");
  }
}

Submission Info

Submission Time
Task C - Transportation Expenses
User rsk0315
Language C++ 23 (gcc 12.2)
Score 300
Code Size 777 Byte
Status AC
Exec Time 22 ms
Memory 4436 KB

Compile Error

Main.cpp: In function ‘int main()’:
Main.cpp:20:8: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   20 |   scanf("%zu %lu", &n, &m);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~
Main.cpp:24:10: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   24 |     scanf("%lu", &ai);
      |     ~~~~~^~~~~~~~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 28
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 1 ms 3044 KB
00_sample_02.txt AC 1 ms 3128 KB
00_sample_03.txt AC 1 ms 3040 KB
01_test_01.txt AC 21 ms 4308 KB
01_test_02.txt AC 21 ms 4356 KB
01_test_03.txt AC 21 ms 4436 KB
01_test_04.txt AC 21 ms 4332 KB
01_test_05.txt AC 21 ms 4248 KB
01_test_06.txt AC 22 ms 4352 KB
01_test_07.txt AC 21 ms 4352 KB
01_test_08.txt AC 21 ms 4360 KB
01_test_09.txt AC 5 ms 3184 KB
01_test_10.txt AC 7 ms 3268 KB
01_test_11.txt AC 21 ms 4360 KB
01_test_12.txt AC 21 ms 4192 KB
01_test_13.txt AC 21 ms 4340 KB
01_test_14.txt AC 21 ms 4356 KB
01_test_15.txt AC 22 ms 4292 KB
01_test_16.txt AC 21 ms 4336 KB
01_test_17.txt AC 21 ms 4240 KB
01_test_18.txt AC 22 ms 4272 KB
01_test_19.txt AC 22 ms 4356 KB
01_test_20.txt AC 1 ms 3120 KB
01_test_21.txt AC 22 ms 4196 KB
01_test_22.txt AC 21 ms 4356 KB
01_test_23.txt AC 21 ms 4200 KB
01_test_24.txt AC 22 ms 4344 KB
01_test_25.txt AC 22 ms 4320 KB