Submission #136524

# Submission time Handle Problem Language Result Execution time Memory
136524 2019-07-25T12:24:46 Z Milki Travelling Merchant (APIO17_merchant) C++14
33 / 100
96 ms 2140 KB
#include<bits/stdc++.h>
using namespace std;

#define FOR(i, a, b) for(int i = a; i < b; ++i)
#define REP(i, n) FOR(i, 0, n)
#define _ << " " <<
#define sz(x) ((int) x.size())
#define pb(x) push_back(x)
#define TRACE(x) cerr << #x << " = " << x << endl

typedef long long ll;
typedef pair<int, int> point;

const int MAXN = 105, MAXK = 1e3 + 5;
const ll inf = 1e9;

ll n, m, items;
ll dist[MAXN][MAXN];
ll buy[MAXN][MAXK], sell[MAXN][MAXK], profit[MAXN][MAXN];

bool check(ll x){
  ll d[MAXN][MAXN];
  REP(i, n) REP(j, n)
    d[i][j] = -inf;

  REP(i, n) REP(j, n)
    d[i][j] = max(d[i][j], profit[i][j] - dist[i][j] * x);

  REP(k, n) REP(i, n) REP(j, n)
    d[i][j] = max(d[i][j], d[i][k] + d[k][j]);

  REP(i, n)
    if(d[i][i] >= 0)
      return true;
  return false;
}

int main(){
  ios_base::sync_with_stdio(false); cin.tie(0);

  REP(i, MAXN) REP(j, MAXN) dist[i][j] = inf;

  cin >> n >> m >> items;
  REP(i, n) REP(j, items){ cin >> buy[i][j] >> sell[i][j]; }
  REP(i, m){
    ll a, b, c; cin >> a >> b >> c;
    a --; b --;
    dist[a][b] = min(dist[a][b], c);
  }

  REP(k, n) REP(i, n) REP(j, n)
    dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);

  REP(i, n) REP(j, n) REP(k, items)
    if(buy[i][k] != -1 && sell[j][k] != -1)
      profit[i][j] = max(profit[i][j], sell[j][k] - buy[i][k]);

  ll lo = 0, hi = 1e9;
  while(lo < hi){
    ll mid = (lo + hi + 1) >> 1;
    if(check(mid))
      lo = mid;
    else
      hi = mid - 1;
  }
  cout << lo;
}
# Verdict Execution time Memory Grader output
1 Correct 76 ms 2044 KB Output is correct
2 Correct 44 ms 1400 KB Output is correct
3 Correct 43 ms 1400 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 888 KB Output is correct
8 Correct 2 ms 504 KB Output is correct
9 Correct 9 ms 888 KB Output is correct
10 Correct 8 ms 888 KB Output is correct
11 Correct 8 ms 888 KB Output is correct
12 Correct 2 ms 508 KB Output is correct
13 Correct 9 ms 888 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 860 KB Output is correct
2 Correct 8 ms 888 KB Output is correct
3 Correct 9 ms 1016 KB Output is correct
4 Correct 9 ms 1016 KB Output is correct
5 Correct 10 ms 1016 KB Output is correct
6 Correct 2 ms 504 KB Output is correct
7 Correct 8 ms 888 KB Output is correct
8 Correct 9 ms 1016 KB Output is correct
9 Correct 9 ms 888 KB Output is correct
10 Correct 9 ms 1016 KB Output is correct
11 Correct 10 ms 1016 KB Output is correct
12 Correct 9 ms 1016 KB Output is correct
13 Correct 9 ms 888 KB Output is correct
14 Correct 9 ms 888 KB Output is correct
15 Correct 10 ms 1016 KB Output is correct
16 Correct 8 ms 888 KB Output is correct
17 Correct 9 ms 1040 KB Output is correct
18 Correct 2 ms 504 KB Output is correct
19 Correct 10 ms 1016 KB Output is correct
20 Correct 10 ms 1016 KB Output is correct
21 Correct 9 ms 1016 KB Output is correct
22 Correct 9 ms 888 KB Output is correct
23 Correct 8 ms 888 KB Output is correct
24 Correct 8 ms 888 KB Output is correct
25 Correct 9 ms 888 KB Output is correct
26 Correct 2 ms 504 KB Output is correct
27 Correct 9 ms 888 KB Output is correct
28 Correct 8 ms 888 KB Output is correct
29 Correct 8 ms 888 KB Output is correct
30 Correct 2 ms 508 KB Output is correct
31 Correct 9 ms 888 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 48 ms 1528 KB Output is correct
2 Incorrect 96 ms 2140 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 9 ms 860 KB Output is correct
2 Correct 8 ms 888 KB Output is correct
3 Correct 9 ms 1016 KB Output is correct
4 Correct 9 ms 1016 KB Output is correct
5 Correct 10 ms 1016 KB Output is correct
6 Correct 2 ms 504 KB Output is correct
7 Correct 8 ms 888 KB Output is correct
8 Correct 9 ms 1016 KB Output is correct
9 Correct 9 ms 888 KB Output is correct
10 Correct 9 ms 1016 KB Output is correct
11 Correct 10 ms 1016 KB Output is correct
12 Correct 9 ms 1016 KB Output is correct
13 Correct 9 ms 888 KB Output is correct
14 Correct 9 ms 888 KB Output is correct
15 Correct 10 ms 1016 KB Output is correct
16 Correct 8 ms 888 KB Output is correct
17 Correct 48 ms 1528 KB Output is correct
18 Incorrect 96 ms 2140 KB Output isn't correct
19 Halted 0 ms 0 KB -