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...