Submission #1147444

#TimeUsernameProblemLanguageResultExecution timeMemory
1147444elitewantsyouTravelling Merchant (APIO17_merchant)C++20
0 / 100
35 ms1348 KiB
//Hello World;
#define kumi_kumi ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#include<bits/stdc++.h>
using namespace std;

//#pragma GCC optimize("Ofast")
inline void debugMode() {
    #ifndef ONLINE_JUDGE
    freopen("in.txt", "r", stdin);
    freopen("out.txt", "w", stdout);
    #endif // ONLINE_JUDGE
}

const int N = 105, K = 1005;
int n, m, k;
int b[N][K], c[N][K], v[N][N];
long long t[N][N], d[N][N];

int main () {
    kumi_kumi;
    //debugMode();
     cin >> n >> m >> k;
     for(int i = 0; i < n; i++) {
       for(int j = 0; j < k; j++) 
         cin >> b[i][j] >> c[i][j];
     }
     for(int i = 0; i < n; i++) {
       for(int j = 0; j < n; j++) 
         t[i][j] = 1e18;
       t[i][i] = 0;
     }
     for(int i = 0; i < m; i++) {
       int v1, w1, t1;
       cin >> v1 >> w1 >> t1;
       t[v1][w1] = t1;
     }
     for(int x = 0; x < n; x++) {
       for(int i = 0; i < n; i++) {
         for(int j = 0; j < n; j++) 
           t[i][j] = min(t[i][j], t[i][x] + t[x][j]);
         for(int j = 0; j < k; j++) 
           v[x][i] = max(v[x][i], c[i][j] - b[x][j]);
       }
     }
     int l = 0, r = 1e9;
     while(l + 1 < r) {
       int md = (l + r) >> 1;
       for(int i = 0; i < n; i++) {
         for(int j = 0; j < n; j++) {
             if (t[i][j] > 1e17) {
                 d[i][j] = -1e18;
             } else {
                 d[i][j] = v[i][j] - t[i][j] * md; 
             }
         }
         d[i][i] = -1e18;
       }
       for(int x = 0; x < n; x++) {
         for(int i = 0; i < n; i++) {
           for(int j = 0; j < n; j++) 
             d[i][j] = max(d[i][j], d[i][x] + d[x][j]);
         }
       }
       bool g = 0;
       for(int i = 0; i < n; i++) 
         g |= (d[i][i] >= 0);
       if(g) 
         l = md;
       else
         r = md;
     }
     cout << l;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...