Submission #1145979

#TimeUsernameProblemLanguageResultExecution timeMemory
1145979imarnCheap flights (LMIO18_pigus_skrydziai)C++20
100 / 100
1524 ms55844 KiB
#include<bits/stdc++.h> #pragma GCC optimize("O3") #pragma GCC target("avx2") #define ll long long #define pii pair<int,int> #define pll pair<ll,ll> #define plx pair<ll,int> #define f first #define s second #define pb push_back #define all(x) x.begin(),x.end() #define vi vector<int> #define vvi vector<vi> #define pp pair<ll,int> #define ub(x,i) upper_bound(all(x),i)-x.begin() #define lb(x,i) lower_bound(all(x),i)-x.begin() #define t3 tuple<int,int,int> using namespace std; const int mxn=3e5+5; vector<pair<int,ll>>g[mxn]; ll dp[mxn]{0},ans=0; int id[mxn]{0}; bool vis[mxn]{0}; vector<pii>qr[mxn]; vector<pii>ord; t3 rd[2*mxn]; int main(){ ios_base::sync_with_stdio(0);cin.tie(0); int n,m;cin>>n>>m; for(int i=1;i<=m;i++){ int a,b,c;cin>>a>>b>>c; g[a].pb({b,c}); g[b].pb({a,c}); dp[a]+=c;dp[b]+=c; ans=max({ans,dp[a],dp[b]}); rd[i]={a,b,c}; } for(int i=1;i<=n;i++)sort(all(g[i])); for(int i=1;i<=m;i++){ int u,v,w;tie(u,v,w)=rd[i]; if(g[u].size()>g[v].size())swap(u,v); qr[u].pb({v,w}); if(vis[u])continue; for(auto [it,wx] : g[u])ord.pb({it,u}); vis[u]=1; }sort(all(ord)); for(auto [v,u] : ord){ while(id[u]<g[u].size()&&g[u][id[u]].f<v)id[u]++; for(auto [vx,w] : qr[u]){ while(id[vx]<g[vx].size()&&g[vx][id[vx]].f<v)id[vx]++; if(id[vx]<g[vx].size()&&g[vx][id[vx]].f==g[u][id[u]].f){ ans=max(ans,g[u][id[u]].s+g[vx][id[vx]].s+w); } } } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...