Submission #861824

#TimeUsernameProblemLanguageResultExecution timeMemory
861824keaucucalSelf Study (JOI22_ho_t2)C++14
62 / 100
1064 ms6616 KiB
// oj.uz SELF STUDY (JOI22_HO_T2) #include <iostream> #include <vector> #include <utility> #include <algorithm> using namespace std; using ll = long long; const ll MAX_NUM = 1e9 * 1e9; // Ai or Bi * M int N, M; vector<pair<int, int>> vec; bool ifFail(const ll passline, ll t) { ll comprehension = 0; int cnt_course = 0; int cnt = M; while(t--) { if(comprehension < passline) { if(vec[cnt_course].first > vec[cnt_course].second && cnt > 0) { comprehension += vec[cnt_course].first; cnt--; } else comprehension += vec[cnt_course].second; } if(comprehension >= passline) { // cout << comprehension << '\n'; cnt_course++; comprehension = 0; cnt = M; } } // cout << passline << ' ' << cnt_course << '\n'; return cnt_course < N; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> N >> M; int t = N * M; vec.resize(N); for(auto &i : vec) cin >> i.first; for(auto &i : vec) cin >> i.second; ll l = 1, r = MAX_NUM; while(l < r) { ll mid = (l + r) / 2 + 1; if(ifFail(mid, t)) { r = mid - 1; } else { l = mid; } } cout << l << '\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...