| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1340619 | ggezlolx3d | Voting Cities (NOI22_votingcity) | C++20 | 251 ms | 4896 KiB |
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define INT_MAX 1e15
signed main(){
cin.tie(NULL)->sync_with_stdio(false);
int n,m,i,j,nn,t,st,en,q,mon,k;
cin >> n >> m >> en;
vector<int> jj(en);
for(i=0;i<en;i++){
cin >> jj[i];
}
vector<pair<int,int>> arr[n+1];
for(i=0;i<m;i++){
int x,y,z;
cin >> x >> y >> z;
arr[x].push_back({z,y});
}
cin >> q;
while(q--){
cin >> st;
vector<int> tua;
for(i=0;i<5;i++){
cin >> nn;
tua.push_back(nn);
}
//cout << tua[4] << "\n\n\n";
priority_queue<pair<int,pair<int,int>>,vector<pair<int,pair<int,int>>>,greater<pair<int,pair<int,int>>>> pq;
pq.push({0,{st,0}});
vector<vector<int>> di(n,vector<int>(32,INT_MAX));
vector<vector<int>> vi(n,vector<int>(32,false));
di[st][0]=0;
while(!pq.empty()){
int x=pq.top().first;
int y=pq.top().second.first;
int z=pq.top().second.second;
pq.pop();
if(vi[y][z])continue;
vi[y][z]=true;
if(x>di[y][z])continue;
for(pair<int,int> U:arr[y]){
int u=U.first;
int v=U.second;
if(!vi[v][z]){
if(di[y][z]+u<di[v][z]){
di[v][z]=di[y][z]+u;
pq.push({di[v][z],{v,z}});
}
}
for(i=0;i<5;i++){
int aaa=1<<i;
if(tua[i]==-1)continue;
if(!(z&aaa)){
if(tua[i]>=u*((i+1)*0.1)){
continue;
}
int sss=z|aaa;
int dis=di[y][z]+u*(1-(i+1)*0.1)+tua[i];
if(dis<di[v][sss]){//cout << y << " " << i << " " << tua[i] << "\n";
di[v][sss]=dis;
pq.push({di[v][sss],{v,sss}});
}
}
}
}
}
int ans=INT_MAX;
for(i=0;i<en;i++){
for(j=0;j<32;j++){
ans=min(ans,di[jj[i]][j]);
}
}
if(ans==INT_MAX){
cout << -1 << "\n";
continue;
}
else{
cout << ans << "\n";
}
}
}
/*
5 18 30
1 2 93 84 2
*/
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
