Submission #124571

# Submission time Handle Problem Language Result Execution time Memory
124571 2019-07-03T14:08:52 Z deinfreund Sightseeing (NOI14_sightseeing) C++14
15 / 25
3500 ms 65328 KB
#include <bits/stdc++.h>

using namespace std;

vector<vector<int> > conns;
vector<vector<int> > costs;

int main(){
  int nodes, edges, targets;
  cin >> nodes >> edges >> targets;
  conns.resize(nodes);
  costs.resize(nodes);
  for (int i = 0; i < edges; i++){
    int a, b, c;
    cin >> a >> b>> c;
    a--; b--; c *= -1;
    conns[a].push_back(b);
    costs[a].push_back(c);
    conns[b].push_back(a);
    costs[b].push_back(c);
  }

  int remaining = 0;
  vector<bool> needed(nodes, 0);
  vector<int> trg;
  for (int i = 0 ; i < targets; i++){
    remaining ++;
    int a;
    cin >> a; a--;
    needed[a] = 1;
    trg.push_back(a);
  }
  vector<long long> best(nodes, 1000000000000000000LL);
  priority_queue<pair<long long, int>> pq;
  pq.push({-1000000000000000000LL,0});
  while (true){
    int pos, cost;
    do{
      pos = pq.top().second;
      cost = -pq.top().first;
      pq.pop();
    }while(cost > best[pos]);
    if (needed[pos]) remaining --;
    if (remaining == 0) break;
    for (int i = 0; i < conns[pos].size(); i++){
      int c = max(cost, costs[pos][i]);
      if (c < best[conns[pos][i]]){
	best[conns[pos][i]] = c;
	pq.push({-c, conns[pos][i]});
      }
    }
  }
  for (int i = 0; i < targets; i++){
    cout << -best[trg[i]] << endl;
  }
}

Compilation message

sightseeing.cpp: In function 'int main()':
sightseeing.cpp:45:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < conns[pos].size(); i++){
                     ~~^~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 504 KB Output is correct
2 Correct 3 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 151 ms 5124 KB Output is correct
2 Correct 117 ms 4728 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 3535 ms 65328 KB Time limit exceeded
2 Halted 0 ms 0 KB -