Submission #637998

#TimeUsernameProblemLanguageResultExecution timeMemory
637998aris12345678Catfish Farm (IOI22_fish)C++17
6 / 100
123 ms17576 KiB
#include "fish.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
#define X first
#define Y second

ll max_weights(int n, int m, vector<int> x, vector<int> y, vector<int> w) {
    vector<pii> A, B;
    ll first = 0LL, second = 0LL;
    for(int i = 0; i < m; i++) {
        if(x[i] == 0) {
            first += 1LL*w[i];
            A.push_back({y[i], w[i]});
        } else {
            second += 1LL*w[i];
            B.push_back({y[i], w[i]});
        }
    }
    A.push_back({INT_MAX, INT_MAX});
    B.push_back({INT_MAX, INT_MAX});
    if(n == 2)
        return max(first, second);
    ll ans = second;
    first = 0LL;
    sort(A.begin(), A.end());
    sort(B.begin(), B.end());
    int i = 0, j = 0;
    while(i+j < m) {
        if(A[i].X < B[j].X)
            first += 1LL*A[i++].Y;
        else
            second -= 1LL*B[j++].Y;
        ans = max({ans, first+second});
    }
    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...