Submission #824001

#TimeUsernameProblemLanguageResultExecution timeMemory
824001Mohammed_AtalahGym Badges (NOI22_gymbadges)C++17
100 / 100
459 ms66092 KiB
/// Template path: /home/mohammed/.config/sublime-text-3/Packages/User #include <bits/stdc++.h> #include <ext/pb_ds/tree_policy.hpp> #include <ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; // typedef typedef long long ll; typedef long double ld; typedef vector<int> vecint; typedef vector<char> vecchar; typedef vector<string> vecstr; typedef vector<long long> vecll; typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; // Marcos #define endl ("\n") #define int long long #define mod 1000000007 #define pi (3.141592653589) #define REP(i,a,b) for (int i = a; i < b; i++) #define RREP(i,a,b) for (int i = a; i > b; i--) #define fast ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr) // Functions long long squared(long long x) {return (x * x) % mod;} int factorial(int n) {long long res = 1; for (int i = 1; i <= n; i++) {res = ((res * i) % mod + mod) % mod ;} return res;} long long power(long long x, long long p) {if (p == 0) {return 1;} if (p % 2 == 1) {return (power(x, p - 1) * x) % mod;} return squared(power(x, p / 2));} // cout << fixed; // cout << setprecision(4); // ---------(^_^)--------- // void main_solve() { int n; cin >> n; vector<int> X; vector<int> L; for (int i = 0 ; i < n ; i ++) { int x; cin >> x; X.push_back(x); } for (int i = 0 ; i < n ; i ++) { int x; cin >> x; L.push_back(x + X[i]); } vector<vector<int>> v; for (int i = 0 ; i < n ; i ++) { v.push_back({L[i], X[i]}); } sort(v.begin(), v.end()); int result = 0; int curr = 0; multiset<int> s; for (int i = 0 ; i < n ; i ++) { // cout << v[i][0] << ' ' << v[i][1] << endl; if (curr > v[i][0] - v[i][1]) { auto it = s.end(); it--; if (v[i][1] < *it) { curr -= *it; curr += v[i][1]; s.erase(it); s.insert(v[i][1]); } continue; } s.insert(v[i][1]); curr += v[i][1]; result++; } cout << result << endl; } int32_t main() { fast; // #ifndef ONLINE_JUDGE // freopen("input.txt", "r", stdin); // freopen("output.txt", "w", stdout); // #endif // Just another problem (-_-) int t; t = 1; // cin >> t; while (t--) { main_solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...