Submission #995889

#TimeUsernameProblemLanguageResultExecution timeMemory
995889irmuunClosing Time (IOI23_closing)C++17
9 / 100
1064 ms22104 KiB
#include<bits/stdc++.h>
#include "closing.h"

using namespace std;

#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()

int max_score(int N,int X,int Y,ll K,vector<int>U,vector<int>V,vector<int>W){
    if(X>Y) swap(X,Y);
    vector<pair<int,int>>adj[N];
    for(int i=0;i<N-1;i++){
        adj[U[i]].pb({V[i],W[i]});
        adj[V[i]].pb({U[i],W[i]});
    }
    ll D[N];
    D[0]=0;
    for(int i=1;i<N;i++){
        for(auto [j,w]:adj[i]){
            if(j==i-1){
                D[i]=D[i-1]+w;
            }
        }
    }
    ll dist[N];
    function <ll(int,int)> calc=[&](int i,int j){
        if(i>j) swap(i,j);
        if(i==j) return 0ll;
        return D[j]-D[i];
    };
    int ans=0;
    for(int l1=0;l1<=X;l1++){
        for(int r1=X;r1<N;r1++){
            for(int r2=Y;r2<N;r2++){
                for(int l2=Y;l2>=0;l2--){
                    ll total=0;
                    int cnt=0;
                    for(int i=0;i<N;i++){
                        ll cur=0;
                        if(l1<=i&&i<=r1){
                            cur=max(cur,calc(i,X));
                            cnt++;
                        }
                        if(l2<=i&&i<=r2){
                            cur=max(cur,calc(i,Y));
                            cnt++;
                        }
                        total+=cur;
                    }
                    if(total<=K){
                        ans=max(ans,cnt);
                    }
                }
            }
        }
    }
    return ans;
}

Compilation message (stderr)

closing.cpp: In function 'int max_score(int, int, int, long long int, std::vector<int>, std::vector<int>, std::vector<int>)':
closing.cpp:29:8: warning: unused variable 'dist' [-Wunused-variable]
   29 |     ll dist[N];
      |        ^~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...