Submission #139262

# Submission time Handle Problem Language Result Execution time Memory
139262 2019-07-31T13:46:33 Z win11905 Travelling Merchant (APIO17_merchant) C++11
0 / 100
98 ms 2552 KB
#include <bits/stdc++.h>
#define long long long 
using namespace std;

const int N = 105;
const int K = 1005;
const int INF = 1e9+1;

int n, m, k;
long b[N][K], s[N][K];
long d1[N][N], d2[N][N], cost[N][N];

void apsp(long d[N][N]) {
  for(int k = 1; k <= n; ++k) 
    for(int i = 1; i <= n; ++i)
      for(int j = 1; j <= n; ++j)
        d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
}

int main() {
  memset(d1, 0x3F, sizeof d1);
  scanf("%d %d %d", &n, &m, &k);
  for(int i = 1; i <= n; ++i) 
    for(int j = 1; j <= k; ++j) 
      scanf("%lld %lld", &b[i][j], &s[i][j]);
  for(int i = 1; i <= n; ++i) for(int j = 1; j <= n; ++j)
    for(int l = 1; l <= k; ++l) if(s[j][l] != -1 && b[i][l] != -1)
      cost[i][j] = max(cost[i][j], s[j][l] - b[i][l]);
  for(int i = 0, u, v, w; i < m; ++i) {
    scanf("%d %d %d", &u, &v, &w);
    d1[u][v] = w;
  }
  apsp(d1);
  long l = 0, r = 1e9;
  while(l < r) {
    long m = (l + r + 1) / 2;
    for(int i = 1; i <= n; ++i) for(int j = 1; j <= n; ++j)
      d2[i][j] = m * d1[i][j] - cost[i][j];
    apsp(d2);
    bool st = false;
    for(int i = 1; i <= n; ++i) st |= d2[i][i] <= 0;
    if(st) l = m;
    else r = m-1;
  }
  printf("%lld\n", l);
}

Compilation message

merchant.cpp: In function 'int main()':
merchant.cpp:22:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d %d", &n, &m, &k);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
merchant.cpp:25:12: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%lld %lld", &b[i][j], &s[i][j]);
       ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
merchant.cpp:30:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d %d", &u, &v, &w);
     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 74 ms 2552 KB Output is correct
2 Correct 39 ms 1272 KB Output is correct
3 Correct 40 ms 1272 KB Output is correct
4 Correct 8 ms 888 KB Output is correct
5 Correct 8 ms 888 KB Output is correct
6 Correct 8 ms 888 KB Output is correct
7 Correct 9 ms 1016 KB Output is correct
8 Correct 2 ms 504 KB Output is correct
9 Correct 8 ms 892 KB Output is correct
10 Correct 8 ms 892 KB Output is correct
11 Correct 8 ms 888 KB Output is correct
12 Correct 2 ms 504 KB Output is correct
13 Incorrect 9 ms 984 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 8 ms 888 KB Output is correct
2 Correct 5 ms 888 KB Output is correct
3 Correct 8 ms 888 KB Output is correct
4 Correct 8 ms 1016 KB Output is correct
5 Correct 9 ms 1016 KB Output is correct
6 Correct 2 ms 504 KB Output is correct
7 Incorrect 8 ms 888 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 46 ms 1656 KB Output is correct
2 Correct 98 ms 2548 KB Output is correct
3 Correct 43 ms 1528 KB Output is correct
4 Correct 46 ms 1784 KB Output is correct
5 Correct 46 ms 1784 KB Output is correct
6 Correct 43 ms 1528 KB Output is correct
7 Correct 9 ms 1016 KB Output is correct
8 Correct 2 ms 504 KB Output is correct
9 Correct 10 ms 1016 KB Output is correct
10 Correct 10 ms 1016 KB Output is correct
11 Incorrect 9 ms 1016 KB Output isn't correct
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 8 ms 888 KB Output is correct
2 Correct 5 ms 888 KB Output is correct
3 Correct 8 ms 888 KB Output is correct
4 Correct 8 ms 1016 KB Output is correct
5 Correct 9 ms 1016 KB Output is correct
6 Correct 2 ms 504 KB Output is correct
7 Incorrect 8 ms 888 KB Output isn't correct
8 Halted 0 ms 0 KB -