Submission #629863

#TimeUsernameProblemLanguageResultExecution timeMemory
629863europiumCatfish Farm (IOI22_fish)C++17
6 / 100
338 ms24488 KiB
#include "fish.h"

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <numeric>
#include <cmath>
#include<iterator>
#include <set>
#include <map>
#include <math.h>
#include <iomanip>
#include <unordered_set>
using namespace std;

using ll = long long;

ll max_weights(int n, int m, vector<int> x, vector<int> y, vector<int> w){

    map<ll,ll> zero, one;
    ll one_sum = 0;

    set<ll> y_cor;

    for (int i = 0; i < m; i++){
        if (x[i] == 0) zero[y[i]] = w[i];
        else{
            one[y[i]] = w[i];
            one_sum += w[i];
        }
        y_cor.insert(y[i]);
    }

    ll curr_zero = 0, curr_one = 0, ans = one_sum;

    for (auto y_pos : y_cor){
        curr_zero += zero[y_pos];
        curr_one += one[y_pos];

        // cout << y_pos << ' ' << curr_zero << ' ' << curr_one << ' ' << curr_zero + one_sum - curr_one <<  '\n';
        ans = max(ans, curr_zero + one_sum - curr_one);
    }

    if (n == 2) return max(curr_zero, one_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...