Submission #785105

#TimeUsernameProblemLanguageResultExecution timeMemory
785105khshgCatfish Farm (IOI22_fish)C++17
6 / 100
75 ms14684 KiB
#include<bits/stdc++.h> using namespace std; long long max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) { if(N == 2) { array<long long, 2> ans; ans[0] = ans[1] = 0LL; for(int i = 0; i < M; ++i) ans[(X[i] == 0 ? 0 : 1)] += (long long)W[i]; return max(ans[0], ans[1]); } long long ans = 0; vector<int> is[2]; for(int i = 0; i < M; ++i) is[X[i]].push_back(i); for(int u : {0, 1}) sort(begin(is[u]), end(is[u]), [&](const int& i, const int& j) { return Y[i] < Y[j]; }); for(int u : is[1]) ans += W[u]; long long Sans = ans; int it = 0; for(int u : is[0]) { Sans += W[u]; while(it < (int)is[1].size() && Y[is[1][it]] <= Y[u]) { Sans -= W[is[1][it]]; ++it; } ans = max(ans, Sans); } 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...