제출 #1234747

#제출 시각아이디문제언어결과실행 시간메모리
1234747mariza메기 농장 (IOI22_fish)C++20
6 / 100
84 ms15788 KiB
#include "fish.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const ll N=1e5;
#define MID ((l+r)/2)

long long max_weights(int n, int m, vector<int> x, vector<int> y, vector<int> w){
    ll c=0;
    vector<pair<ll,ll>> c0, c1;
    for(ll i=0; i<m; i++){
        if(x[i]==1){
            c+=w[i];
            c1.push_back({y[i],w[i]});
        }
        else c0.push_back({y[i],w[i]});
    }
    sort(c0.begin(),c0.end());
    sort(c1.begin(),c1.end());
    ll idx0=0, idx1=0;

    ll ans=c, ans2=c;
    for(ll h=0; h<n; h++){
        if(idx0<c0.size() && c0[idx0].first==h){
            c+=c0[idx0].second;
            idx0++;
        }
        if(idx1<c1.size() && c1[idx1].first==h){
            c-=c1[idx1].second;
            idx1++;
        }
        ans=max(ans,c);
        // cout<<h<<" "<<c<<endl;
    }
    if(n>2) return ans;
    else return max(c,ans2);
}
#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...