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 |
|
|
|
|
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 |