Submission #863581

#TimeUsernameProblemLanguageResultExecution timeMemory
863581TAhmed33A Difficult(y) Choice (BOI21_books)C++17
10 / 100
1 ms856 KiB
#include <bits/stdc++.h> #include <books.h> using namespace std; typedef long long ll; void solve (int n, int k, ll a, int s) { map <int, ll> dd; int l = 1, r = n - k + 1; int ans = -1; while (l <= r) { int mid = (l + r) >> 1; ll sum = 0; for (int i = mid; i <= mid + k - 1; i++) { if (!dd.count(i)) { assert(dd.size() < s); dd[i] = skim(i); } sum += dd[i]; } if (sum >= a) { r = mid - 1; ans = mid; } else { l = mid + 1; } } if (ans == -1) { impossible(); return; } ll t = 0; for (int i = ans; i <= ans + k - 1; i++) t += dd[i]; if (t > 2 * a) { impossible(); return; } vector <int> ret; for (int i = ans; i <= ans + k - 1; i++) ret.push_back(i); answer(ret); }

Compilation message (stderr)

In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from books.cpp:1:
books.cpp: In function 'void solve(int, int, ll, int)':
books.cpp:14:22: warning: comparison of integer expressions of different signedness: 'std::map<int, long long int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   14 |     assert(dd.size() < s);
      |            ~~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...