Submission #1228072

#TimeUsernameProblemLanguageResultExecution timeMemory
1228072Nika533Cyberland (APIO23_cyberland)C++17
44 / 100
27 ms9288 KiB
#pragma GCC diagnostic warning "-std=c++11"
#include <bits/stdc++.h>
#include "cyberland.h"
#define pb push_back
#define f first
#define s second
#define MOD 1000000007
#define flush fflush(stdout)
#define all(x) (x).begin(),(x).end()
#define allr(x) (x).rbegin(), (x).rend()
#define pii pair<int,int>
using namespace std;
const int N=1e5+5;
int n,m,k,val[N],fix[N],fix2[N];
long long dist[N];
vector<pair<int,int>> g[N];

void dfs2(int x) {
	if (fix2[x]) return;
	fix2[x]=1;
	for (auto AA:g[x]) {
		dfs2(AA.f);
	}
}

double solve(int N, int M, int K, int H, vector<int> x, vector<int> y, vector<int> c, vector<int> arr) {
    n=N; m=M; k=K;
    for (int i=1; i<=n; i++) {
    	g[i].clear(); fix[i]=0; dist[i]=1e18; fix2[i]=0;
	}
	for (int i=1; i<=n; i++) {
		val[i]=arr[i-1];
	}
	for (int i=0; i<m; i++) {
		g[x[i]+1].pb({y[i]+1,c[i]});
		g[y[i]+1].pb({x[i]+1,c[i]});
//		cout<<x[i]+1<<" "<<y[i]+1<<endl;
	}
	val[1]=0;
	fix2[H+1]=2;
	dfs2(1);
	priority_queue<pair<long long,int>> q;
	for (int i=1; i<=n; i++) {
		if (val[i]==0 && fix2[i]==1) {
			dist[i]=0;
			q.push({0,i});
		}
	}
	
	while (!q.empty()) {
		int v=q.top().s; q.pop();
		if (fix[v]) continue;
		fix[v]=1;
		for (auto AA:g[v]) {
			int u=AA.f;
			long long w=AA.s;
			if (dist[u]>dist[v]+w) {
				dist[u]=dist[v]+w;
				q.push({-dist[u],u});
			}
		}
	}
	long long ans=1e18,big=1e18;
	ans=dist[H+1];
	double anss=ans;
	if (dist[H+1]==big) return -1;
	return anss;
}

Compilation message (stderr)

cyberland.cpp:1:32: warning: '-std=c++11' is not an option that controls warnings [-Wpragmas]
    1 | #pragma GCC diagnostic warning "-std=c++11"
      |                                ^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...