Submission #998648


Source Code Expand

#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <climits>
#include <iostream>
#include <algorithm>
#include <set>
#include <map>
#include <queue>
#include <vector>
#include <sstream>
#include <typeinfo>
#include <fstream>

#define DIV 1000000007

using namespace std;

long long N, M, Q;
long long S[100005];
long long T[100005];

//           cost,   ,  dst
vector<pair<long long, long long> >tree[4005];

//           cost,   ,  dst
vector<pair<long long, long long> >ttree[4005];

void solve(long long s, long long t){
	set<long long> done;
	//                     cost  ,   dst
	priority_queue<pair<long long, long long>, vector<pair<long long, long long> >, greater<pair<long long, long long> > > Q;
	long long ans = 0;
	Q.push(make_pair(0, s));
	Q.push(make_pair(0, t));
	while(!Q.empty() && done.size() < N){
		long long cost, dst;
		cost = Q.top().first;
		dst = Q.top().second;
		Q.pop();
		if(done.count(dst) != 0){
			continue;
		}
		ans += cost;
		done.insert(dst);

		for(int i = 0; i < ttree[dst].size(); i++){
			long long ncost = ttree[dst][i].first;
			long long next = ttree[dst][i].second;
			if(done.count(next) != 0){
				continue;
			}
			Q.push(make_pair(ncost, next));
		}
	}
	cout << ans << endl;
}

void prepare(){
	set<long long> done;
	//                     cost  ,      src	,     dst
	priority_queue<pair<long long, pair<long long, long long> >, vector<pair<long long, pair<long long, long long> > >, greater<pair<long long, pair<long long, long long> > > > Q;
	Q.push(make_pair(0, make_pair(-1, 0)));
	while(!Q.empty() && done.size() < N){
		long long cost, src, dst;
		cost = Q.top().first;
		src = Q.top().second.first;
		dst = Q.top().second.second;
		Q.pop();
		if(done.count(dst) != 0){
			continue;
		}
		done.insert(dst);
		if(src != -1){
			ttree[src].push_back(make_pair(cost, dst));
			ttree[dst].push_back(make_pair(cost, src));
		}
		for(int i = 0; i < tree[dst].size(); i++){
			long long ncost = tree[dst][i].first;
			long long next = tree[dst][i].second;
			if(done.count(next) != 0){
				continue;
			}
			Q.push(make_pair(ncost, make_pair(dst, next)));
		}
	}
}


int main(){
	cin >> N >> M;
	for(int i = 0; i < M; i++){
		long long a, b, c;
		cin >> a >> b >> c;
		a--;b--;
		tree[a].push_back(make_pair(c, b));
		tree[b].push_back(make_pair(c, a));
	}
	cin >> Q;
	for(int i = 0; i < Q; i++){
		cin >> S[i] >> T[i];
		S[i]--;T[i]--;
	}
	if(Q > 3000){
		return 1;
	}
	
	prepare();

	return 0;

	for(int i = 0; i < Q; i++){
		solve(S[i], T[i]);
	}
}

Submission Info

Submission Time
Task A - Graph
User motomuman
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2646 Byte
Status WA
Exec Time 498 ms
Memory 30452 KB

Judge Result

Set Name Sample subtask1 subtask2 All
Score / Max Score 0 / 0 0 / 200 0 / 300 0 / 200
Status
WA × 2
WA × 12
WA × 21
WA × 21
RE × 8
Set Name Test Cases
Sample sample_1.txt, sample_2.txt
subtask1 sample_2.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt
subtask2 sample_1.txt, sample_2.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt, subtask_2_1.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt
All sample_1.txt, sample_2.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_2.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt, subtask_2_1.txt, subtask_2_2.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt, subtask_3_1.txt, subtask_3_2.txt, subtask_3_3.txt, subtask_3_4.txt, subtask_3_5.txt, subtask_3_6.txt, subtask_3_7.txt, subtask_3_8.txt
Case Name Status Exec Time Memory
sample_1.txt WA 3 ms 384 KB
sample_2.txt WA 2 ms 384 KB
subtask_1_1.txt WA 4 ms 512 KB
subtask_1_10.txt WA 252 ms 15476 KB
subtask_1_11.txt WA 3 ms 384 KB
subtask_1_2.txt WA 59 ms 4220 KB
subtask_1_3.txt WA 492 ms 30320 KB
subtask_1_4.txt WA 9 ms 1024 KB
subtask_1_5.txt WA 11 ms 1152 KB
subtask_1_6.txt WA 130 ms 8184 KB
subtask_1_7.txt WA 495 ms 30320 KB
subtask_1_8.txt WA 9 ms 1024 KB
subtask_1_9.txt WA 19 ms 1396 KB
subtask_2_1.txt WA 489 ms 30452 KB
subtask_2_2.txt WA 492 ms 30324 KB
subtask_2_3.txt WA 492 ms 30452 KB
subtask_2_4.txt WA 498 ms 30328 KB
subtask_2_5.txt WA 11 ms 1024 KB
subtask_2_6.txt WA 37 ms 2176 KB
subtask_2_7.txt WA 133 ms 8180 KB
subtask_2_8.txt WA 495 ms 30320 KB
subtask_3_1.txt RE 430 ms 19456 KB
subtask_3_2.txt RE 430 ms 19456 KB
subtask_3_3.txt RE 54 ms 2176 KB
subtask_3_4.txt RE 62 ms 2560 KB
subtask_3_5.txt RE 239 ms 10752 KB
subtask_3_6.txt RE 339 ms 19200 KB
subtask_3_7.txt RE 428 ms 19456 KB
subtask_3_8.txt RE 430 ms 19456 KB