답안 #252864

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
252864 2020-07-26T11:18:49 Z khangal 여행하는 상인 (APIO17_merchant) C++14
12 / 100
117 ms 31352 KB
#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
typedef long long ll;
typedef double db;
typedef vector<long long> vl;
typedef pair<long long , long long > pl;
const int N=1e6+1;
#define po pop_back
#define pb push_back
#define mk make_pair
#define lw lower_bound
#define up upper_bound
#define ff first
#define ss second
#define boost ios_base::sync_with_stdio(); cin.tie(0); cout.tie(0);
#define MOD 1000000007
#define MAX 1e18 
#define MIN -1e18
#define rep(i,a,b) for(ll i=a;i<=b;i++)
#define per(i,a,b) for(ll i=b;i>=a;i--)
#define con continue
#define freopen freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);
#define PI 3.14159265358979323846264338327950288419716939937510582097494459230781640628
// typedef tree<ll , null_type, less<ll>, rb_tree_tag, tree_order_statistics_node_update> indexed_set;
// template< typename T>
// using indexed_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
ll sz,n,m,ans,mid,mn,mx,cnt,T,sum,h1,h2,e[1234567],b[1234567],c[1234567],d[1<<20],k,i,j,l,r,h,a[1234567],w,x,y,z;
bool used[1234567];
vector<ll> v[1234567];
vl vec;
ll C[123][1234][2],D[123][123],c1[123][123];
bool check(ll val){
    rep(i,1,n){
        rep(j,1,n){
            D[i][j] = MIN;
            if(c1[i][j] == 0 ) con;
            rep(o,1,k){
                if(C[i][o][0]==-1 || C[j][o][1]==-1) con;
                D[i][j] = max(D[i][j],max(0ll , C[j][o][1] - C[i][o][0]) - c1[i][j] * val);
            }
        }
    }
    rep(k,1,n){
        rep(i,1,n){
            rep(j,1,n){
                D[i][j] = max(D[i][j] , D[i][k] + D[k][j]);
            }
        }
    }
    rep(i,1,n){
        if(D[i][i] >= 0) return true;
    }
    return false;
}
 
int main(){
    cin>>n>>m>>k;
    rep(i,1,n){
        rep(j,1,k){
            cin>>x>>y;
            C[i][j][0]=x;
            C[i][j][1]=y;
            if(i>1 && x!=-1){
                cnt++;
            }
        }
    }
    if(cnt==0){
        rep(i,1,n){
            rep(j,1,n)c1[i][j]=MAX;
            c1[i][i]=0;
        }
        rep(i,1,m){
            cin>>x>>y>>z;
            c1[x][y]=z;
        }
        rep(k,1,n){
            rep(i,1,n){
                rep(j,1,n){
                    c1[i][j]=min(c1[i][j] , c1[i][k] + c1[k][j]);
                }
            }
        }
        rep(a,1,n){
            rep(b,1,n){
                rep(j,1,k){
                    if(C[a][j][0] != -1 && C[b][j][1] != -1){
                        D[a][b] = max(D[a][b] , C[b][j][1] - C[a][j][0]);
                    }
                }
            }
        }
        rep(i,2,n)
            ans = max(ans , (D[1][i]+D[i][1]) / (c1[1][i]+c1[i][1]));
        cout<<ans;
        return 0;
    }
    rep(i,1,m){
        cin>>x>>y>>z;
        c1[x][y]=z;
    }
    l=0;
    r=MAX;
    ans = 0; 
    while(l<r){
        ll mid=(l+r)/2;
        if(check(mid)==1){
            ans=mid;
            l = mid+1;
        }
        else{
            r = mid-1;
        }
    }
    cout<<ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 117 ms 31352 KB Output is correct
2 Correct 19 ms 29824 KB Output is correct
3 Correct 19 ms 29824 KB Output is correct
4 Correct 18 ms 29568 KB Output is correct
5 Correct 18 ms 29568 KB Output is correct
6 Correct 19 ms 29568 KB Output is correct
7 Correct 20 ms 29696 KB Output is correct
8 Correct 17 ms 29312 KB Output is correct
9 Correct 18 ms 29560 KB Output is correct
10 Correct 18 ms 29568 KB Output is correct
11 Correct 18 ms 29568 KB Output is correct
12 Correct 17 ms 29440 KB Output is correct
13 Correct 21 ms 29696 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 31 ms 29824 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 105 ms 30136 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 31 ms 29824 KB Output isn't correct
2 Halted 0 ms 0 KB -