Submission #1232485

#TimeUsernameProblemLanguageResultExecution timeMemory
1232485yixuan19Bikeparking (EGOI24_bikeparking)C++20
100 / 100
83 ms4796 KiB
//#include <bits/stdc++.h> #include <iostream> #include <vector> using namespace std; int main(){ int N, slot, user; cin >> N; vector<int> slots(N+1,0); vector<int> users(N+1,0); for (int i = 0; i < N; ++i){ cin >> slots[i]; } for (int i = 0; i < N; ++i){ cin >> users[i]; } int sol = 0; vector<int> available; for (int i = 1; i < N; ++i){ if (slots[i-1] > 0){ available.push_back(i-1); } // for (int i: available){ // cout<<i<<' '; // } // cout<<endl; for (int z = available.size()-1; z >= 0; --z){ int j = available[z]; if (users[i] > slots[j]){ users[i] -= slots[j]; sol += slots[j]; available.pop_back(); slots[j]= 0; }else{ sol += users[i]; slots[j] -= users[i]; users[i] = 0; if (slots[j] == 0) available.pop_back(); break; } } } for (int i = 0; i <N; ++i){ if (users[i] > 0 && slots[i] > 0){ if (users[i] >= slots[i]){ users[i] -= slots[i]; slots[i]= 0; }else{ slots[i] -= users[i]; users[i] = 0; } } } for (int i = 0; i < N; ++i){ sol-= users[i]; } cout<<sol<<endl; }
#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...