General
 
 
# Author Problem Lang Verdict Time Memory Sent Judged  
188564596 Practice:
DaiRuiChen007
1486E - 53 C++14 (GCC 6-32) Accepted 3931 ms 402244 KB 2023-01-09 12:19:14 2023-01-09 12:19:14
→ Source
// LUOGU_RID: 99148906
#include<bits/stdc++.h>
#define pii pair<int,int>
using namespace std;
const int MAXN=1e5+1;
struct node {
	int des,val;
}; 
vector <node> G[MAXN*51];
int dis[MAXN*51];
bool vis[MAXN*51];
signed main() {
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;++i) {
		int u,v,w;
		scanf("%d%d%d",&u,&v,&w);
		G[u].push_back((node){n*w+v,0});
		G[v].push_back((node){n*w+u,0});
		for(int k=1;k<=50;++k) {
			G[n*k+u].push_back((node){v,(k+w)*(k+w)});
			G[n*k+v].push_back((node){u,(k+w)*(k+w)});
		}
	}
	priority_queue <pii,vector<pii>,greater<pii> > q;
	memset(dis,0x3f,sizeof(dis));
	dis[1]=0,q.push(make_pair(dis[1],1));
	while(!q.empty()) {
		int p=q.top().second; q.pop();
		if(vis[p]) continue;
		vis[p]=true;
		for(auto e:G[p]) {
			int v=e.des,w=e.val;
			if(dis[v]>dis[p]+w) {
				dis[v]=dis[p]+w;
				q.push(make_pair(dis[v],v));
			}
		}
	}
	for(int i=1;i<=n;++i) printf("%d ",vis[i]?dis[i]:-1);
	return 0;
}
?
Time: ? ms, memory: ? KB
Verdict: ?
Input
?
Participant's output
?
Jury's answer
?
Checker comment
?
Diagnostics
?
Click to see test details