Submission #1232073

#TimeUsernameProblemLanguageResultExecution timeMemory
1232073RakhimovAmir메기 농장 (IOI22_fish)C++20
0 / 100
84 ms13748 KiB
#include "fish.h"

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
long long max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) {
	if (N == 2) {
		ll res[2] = {};
		for (int i = 0; i < M; i++) {
			res[X[i]] += W[i];
		}
		return max(res[0], res[1]);
	} else {
		ll res = 0;
		vector<pair<int, pair<int, int>>> v;
		ll sum1 = 0, sum0 = 0;
		for (int i = 0; i < M; i++) {
			v.push_back({Y[i], {W[i], X[i]}});
			if (X[i])
				sum1 += W[i];
		}
		sort(v.begin(), v.end());
		res = sum1;
		for (int i = 0; i < v.size(); i++) {
			if (v[i].second.second == 1)
				sum1 -= v[i].second.first;
			else
				sum0 += v[i].second.first;
			while (i < v.size() - 1 && v[i].first == v[i + 1].first) {
				i++;
			}
			res = max(res, sum0 + sum1);
		}
		return res;
	}
}
#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...