제출 #1276900

#제출 시각아이디문제언어결과실행 시간메모리
1276900WH8여행하는 상인 (APIO17_merchant)C++20
0 / 100
58 ms2048 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pll pair<int, int> #define mp make_pair #define pb push_back #define f first #define s second #define ld long double int n,m,k, prof[105][105]; vector<vector<int>> dist(105, vector<int>(105, 1e15)); vector<vector<pll>> dp(105, vector<pll>(105)); vector<vector<pll>> v(105); signed main(){ cin>>n>>m>>k; for(int i=0;i<n;i++){ for(int j=0;j<k;j++){ int a,b;cin>>a>>b; v[i].pb({a,b}); } } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ for(int z=0;z<k;z++){ if(v[j][z].s==-1 or v[i][z].f == -1)continue; prof[i][j]=max(prof[i][j],v[j][z].s-v[i][z].f); } //~ printf("from %lld to %lld, prof %lld\n", i, j, prof[i][j]); } } //~ for(int i=0;i<n;i++)dist[i][i]=0; for(int i=0;i<m;i++){ int a,b,c;cin>>a>>b>>c; a--,b--; dist[a][b]=c; dist[b][a]=c; } for(int z=0;z<n;z++){ for(int j=0;j<n;j++){ for(int i=0;i<n;i++){ dist[i][j]=min(dist[i][z]+dist[z][j], dist[i][j]); } } } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ dp[i][j]={prof[i][j], dist[i][j]}; } } //~ for(int i=0;i<n;i++){ //~ for(int j=0;j<n;j++){ //~ cout<<prof[i][j]<<" "; //~ } //~ cout<<endl; //~ } //~ cout<<endl; //~ for(int i=0;i<n;i++){ //~ for(int j=0;j<n;j++){ //~ cout<<dist[i][j]<<" "; //~ } //~ cout<<endl; //~ } //~ cout<<endl; for(int z=0;z<n;z++){ for(int j=0;j<n;j++){ for(int i=0;i<n;i++){ if(z==i or z==j or i==j)continue; if((ld)dp[i][j].f / (ld)(dp[i][j].s) < (ld)(dp[i][z].f+dp[z][j].f)/(ld)(dp[i][z].s+dp[z][j].s)){ dp[i][j].f=dp[i][z].f+dp[z][j].f; dp[i][j].s=dp[i][z].s+dp[z][j].s; } } } } int ans=0; for(int z=0;z<n;z++){ for(int j=0;j<n;j++){ for(int i=0;i<n;i++){ // i > j > z > i; ans=max(ans, (dp[i][j].f+dp[j][z].f+dp[z][i].f)/(dp[i][j].s+dp[j][z].s+dp[z][i].s)); } } } 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...