This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int INF = 1e16;
int n, p, m;
vector<pair<int, int>> man;
vector<vector<pair<int, int>>> graph;
vector<int> ans;
void dijkstra(int i)
{
vector<int> dist(n+1, -1);
priority_queue<pair<int, int>> pq; pq.push({0, man[i].first});
while(!pq.empty())
{
int here = pq.top().second, cost = -pq.top().first; pq.pop();
if(dist[here] != -1) continue;
dist[here] = cost;
for(auto it : graph[here])
{
int there = it.first, ncost = cost + it.second * man[i].second;
if(dist[there] != -1) continue;
pq.push({-ncost, there});
}
}
for(int j = 1; j <= n; j++)
{
if(dist[j] != -1) ans[j] = max(ans[j], dist[j]);
else ans[j] = INF;
}
}
int32_t main()
{
int T; scanf("%lld", &T);
for(int t = 1; t <= T; t++)
{
scanf("%lld%lld%lld", &n, &p, &m);
man.clear(); graph.clear();
man.resize(p+1); graph.resize(n+1);
for(int i = 1; i <= p; i++) cin >> man[i].first >> man[i].second;
for(int i = 1; i <= m; i++)
{
int d, l; cin >> d >> l; vector<int> v(l+1);
for(int j = 1; j <= l; j++)
{
cin >> v[j];
for(int k = 1; k < j; k++)
{
graph[v[j]].push_back({v[k], (j - k) * d});
graph[v[k]].push_back({v[j], (j - k) * d});
}
}
}
ans.resize(n+1, -1);
for(int i = 1; i <= p; i++) dijkstra(i);
int res = INF;
for(int i = 1; i <= n; i++)
{
if(ans[i] != INF) res = min(res, ans[i]);
}
printf("Case #%lld: %lld\n", t, (res == INF ? -1 : res));
}
}
Compilation message (stderr)
C.cpp: In function 'int32_t main()':
C.cpp:40:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
40 | int T; scanf("%lld", &T);
| ~~~~~^~~~~~~~~~~~
C.cpp:43:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
43 | scanf("%lld%lld%lld", &n, &p, &m);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |