Submission #1164149

#TimeUsernameProblemLanguageResultExecution timeMemory
1164149SmuggingSpunCatfish Farm (IOI22_fish)C++20
0 / 100
22 ms3268 KiB
#include<bits/stdc++.h>
#include "fish.h"
using namespace std;
typedef long long ll;
template<class T>void maximize(T& a, T b){
    if(a < b){
        a = b;
    }
}
ll max_weights(int n, int m, vector<int>X, vector<int>Y, vector<int>W){
    ll sum = 0;
    vector<vector<pair<int, int>>>p(2);
    for(int i = 0; i < m; i++){
        if(X[i] == 1){
            sum += W[i];
            p[1].emplace_back(Y[i], W[i]);
        }
        else{
            p[0].emplace_back(Y[i], W[i]);
        }
    }
    sort(p[0].begin(), p[0].end());
    sort(p[1].begin(), p[1].end());
    p[1].emplace_back(n, 0);
    int i = 0;
    ll ans = sum;
    for(int j = 0; j + 1 < p[1].size(); j++){
        sum -= p[1][j].second;
        while(i < p[0].size() && p[0][i].first < p[1][j + 1].first){
            sum += p[0][i++].second;
        }
        maximize(ans, sum);
    }
    return ans;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...