Submission #1164155

#TimeUsernameProblemLanguageResultExecution timeMemory
1164155SmuggingSpun메기 농장 (IOI22_fish)C++20
3 / 100
49 ms7240 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){
    bool is_sub1 = true;
    for(int& x : X){
        if(x & 1){
            is_sub1 = false;
            break;
        }
    }
    if(is_sub1){
        return accumulate(W.begin(), W.end(), 0LL);
    }
    if(*max_element(X.begin(), X.end()) <= 1){
        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]);
            }
        }
        p[1].emplace_back(-1, 0);
        p[1].emplace_back(n, 0);
        sort(p[0].begin(), p[0].end());
        sort(p[1].begin(), p[1].end());
        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;
                i++;
            }
            maximize(ans, sum);
        }
        return ans;
    }
}

Compilation message (stderr)

fish.cpp: In function 'll max_weights(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
fish.cpp:49:1: warning: control reaches end of non-void function [-Wreturn-type]
   49 | }
      | ^
#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...