Submission #1193699

#TimeUsernameProblemLanguageResultExecution timeMemory
1193699avighnaSnail (NOI18_snail)C++20
0 / 100
1 ms328 KiB
#include <bits/stdc++.h> int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); int64_t h; int n; std::cin >> h >> n; std::vector<int64_t> p(n); for (auto &i : p) { std::cin >> i; } int64_t cur = 0; std::vector<bool> seen(n); int64_t orig = 0; for (int64_t day = 0;; day++) { bool seen_anything = false; for (int i = 0; i < n; ++i) { if (cur == 0 and seen[i]) { std::cout << "-1 -1\n"; return 0; } if (cur == 0) { seen[i] = seen_anything = true; } if ((cur = std::max(int64_t(0), cur + p[i])) >= h) { std::cout << day << ' ' << i << '\n'; return 0; } } orig++; if (!seen_anything) { break; } } int64_t sum = cur; std::pair<int64_t, int> max_sum = {-1, -1}; for (int i = 0; i < n; ++i) { sum += p[i]; max_sum = std::max(max_sum, {sum, i}); } int64_t day = (h - (max_sum.first - cur) + sum - 1) / sum; int64_t cur_pos = sum * day; for (int i = 0; i < n; ++i) { cur_pos += p[i]; if (cur_pos >= h) { std::cout << day + orig - 1 << ' ' << i << '\n'; return 0; } } }
#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...