Submission #2194924


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
#define pb push_back
typedef long long ll;

vector<int> par,rk;

void init(const int n){
	par.resize(n);
	rk.resize(n);
	for(int i=0;i<n;++i) par[i]=i;
	fill(rk.begin(),rk.end(),0);
}

int find(int x){
	if(par[x]==x){
		return x;
	}else{
		return par[x]=find(par[x]);
	}
}

void unite(int x,int y){
	x=find(x);
	y=find(y);
	if(x==y){
		return;
	}else if(rk[x]<rk[y]){
		par[x]=y;
	}else{
		par[y]=x;
		if(rk[x]==rk[y]){
			++rk[x];
		}
	}
}

bool same(int x,int y){
	return find(x)==find(y);
}

struct edge{
	int from,to;
	ll cost;
};

bool cmp(edge e,edge f){
	return e.cost<f.cost;
}

#define MAX_Q 100000

vector<edge> es;

#define MAX_N 4000

vector<int> g[MAX_N];
ll d[MAX_N][MAX_N];

void dfs(int v0,int v){
	for(int j=0;j<g[v].size();++j){
		int e=g[v][j],w=es[e].from;
		if(v==w) w=es[e].to;
		if(d[v0][w]>=0) continue;
		d[v0][w]=max(d[v0][v],es[e].cost);
		dfs(v0,w);
	}
}

int main(){
	int n,m;
	scanf("%d%d",&n,&m);
	while(m-->0){
		int a,b,c;
		cin>>a>>b>>c;
		es.pb((edge){--a,--b,c});
	}
	sort(es.begin(),es.end(),cmp);
	init(n);
	ll sc=0;
	for(int j=0,e=0;e<n-1;++j){
		int v=es[j].from,w=es[j].to;
		if(same(v,w)) continue;
		unite(v,w);
		sc+=es[j].cost;
		g[v].pb(j);
		g[w].pb(j);
		++e;
	}
	for(int v=0;v<n;++v){
		fill(d[v],d[v]+n,-1);
		d[v][v]=0;
		dfs(v,v);
	}
	int q;
	scanf("%d",&q);
	while(q-->0){
		int s,t;
		scanf("%d%d",&s,&t);
		printf("%lld\n",sc-d[--s][--t]);
	}
}

Submission Info

Submission Time
Task A - Graph
User neander
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1545 Byte
Status AC
Exec Time 1272 ms
Memory 134504 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:72:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d",&n,&m);
                     ^
./Main.cpp:96:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&q);
                ^
./Main.cpp:99:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d",&s,&t);
                      ^

Judge Result

Set Name Sample subtask1 subtask2 All
Score / Max Score 0 / 0 200 / 200 300 / 300 200 / 200
Status
AC × 2
AC × 12
AC × 21
AC × 31
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, 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 AC 1 ms 384 KB
sample_2.txt AC 1 ms 384 KB
subtask_1_1.txt AC 3 ms 2688 KB
subtask_1_10.txt AC 1013 ms 129388 KB
subtask_1_11.txt AC 1 ms 384 KB
subtask_1_2.txt AC 793 ms 126068 KB
subtask_1_3.txt AC 1241 ms 132328 KB
subtask_1_4.txt AC 609 ms 125568 KB
subtask_1_5.txt AC 700 ms 125568 KB
subtask_1_6.txt AC 863 ms 127088 KB
subtask_1_7.txt AC 1219 ms 131688 KB
subtask_1_8.txt AC 608 ms 125568 KB
subtask_1_9.txt AC 778 ms 125692 KB
subtask_2_1.txt AC 1246 ms 133352 KB
subtask_2_2.txt AC 1236 ms 133096 KB
subtask_2_3.txt AC 1230 ms 132712 KB
subtask_2_4.txt AC 1240 ms 132328 KB
subtask_2_5.txt AC 609 ms 125568 KB
subtask_2_6.txt AC 768 ms 125816 KB
subtask_2_7.txt AC 865 ms 127088 KB
subtask_2_8.txt AC 1244 ms 132328 KB
subtask_3_1.txt AC 1264 ms 133096 KB
subtask_3_2.txt AC 1259 ms 133224 KB
subtask_3_3.txt AC 632 ms 126976 KB
subtask_3_4.txt AC 780 ms 126972 KB
subtask_3_5.txt AC 1017 ms 130540 KB
subtask_3_6.txt AC 1148 ms 132712 KB
subtask_3_7.txt AC 1272 ms 134504 KB
subtask_3_8.txt AC 1269 ms 134504 KB