Submission #1365311

#TimeUsernameProblemLanguageResultExecution timeMemory
1365311vahagngJobs (BOI24_jobs)C++20
0 / 100
98 ms21320 KiB
#include <bits/stdc++.h>
using namespace std;

const int N = 3e5 + 10;

long long n, s, p[N], a[N], dp[2002][2002];

vector<int> adj[N];
int in[N];

vector<vector<int>> comps;
vector<int> comp;

int main(){
    cin >> n >> s;
    for(int i = 1; i <= n; i++){
        cin >> a[i] >> p[i];
        if(p[i] == 0){
            if(comp.empty()) comp.push_back(i);
            else{
                comps.push_back(comp);
                comp.clear();
                comp.push_back(i);
            }
        }
        if(p[i]) adj[p[i]].push_back(i), in[i]++;
    }
    if(!comp.empty()) comps.push_back(comp);
    long long ans = 0;
    for(auto i : comps){
        long long p = 0;
        for(auto j : i){
            if(p + a[j] >= 0){
                p += a[j];
            }else{
                break;
            }
            ans = max(ans, p);
        }
    }
    cout << ans << endl;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...