Submission #3314185


Source Code Expand

#include "bits/stdc++.h"

using namespace std;

typedef long long ll;
typedef pair<int,int> P;
constexpr double EPS = 1e-12;
constexpr int INF = numeric_limits<int>::max()/2;
constexpr int MOD = 1e9+7;

struct Edge{
    int from, to;
    ll cost;
    Edge(int from,int to,ll cost): from(from),to(to), cost(cost){}
};
typedef vector<Edge> Edges;
typedef vector<Edges> Graph;

bool operator < (const Edge &e, const Edge &f){
    return e.cost > f.cost;
}

struct UF {
	vector<int> data;
	UF(int size) : data(size, -1) { }
	bool unite(int x, int y) {
		x = root(x); y = root(y);
		if (x != y) {
			if (data[y] < data[x]) swap(x, y);
			data[x] += data[y]; data[y] = x;
		}
		return x != y;
	}
	bool find(int x, int y) {
		return root(x) == root(y);
	}
	int root(int x) {
		return data[x] < 0 ? x : data[x] = root(data[x]);
	}
	int size(int x) {
		return -data[root(x)];
	}
};

int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);

    int n,m;cin>>n>>m;
    Graph g(n);
    priority_queue<Edge> pq;
    for(int i=0;i<m;i++){
      int a,b;cin>>a>>b;a--;b--;
      ll c;cin>>c;
      pq.push(Edge(a,b,c));
      g[a].push_back(Edge(a,b,c));
      g[b].push_back(Edge(b,a,c));
    }
    ll sum=0;
    UF uf(n);
    Graph mst(n);
    while(!pq.empty()){
      Edge e=pq.top();pq.pop();
      if(uf.find(e.from,e.to)) continue;
      uf.unite(e.from,e.to);
      mst[e.from].push_back(Edge(e.from,e.to,e.cost));
      mst[e.to].push_back(Edge(e.to,e.from,e.cost));
      sum += e.cost;
    }
    vector<vector<ll>> dis(n,vector<ll>(n,-1));
    for(int i=0;i<n;i++){
      queue<int> q;
      dis[i][i]=0;
      q.push(i);
      while(!q.empty()){
        int v=q.front();q.pop();
        for(int j=0;j<(int)mst[v].size();j++){
          int next=mst[v][j].to;
          if(dis[i][next]!=-1) continue;
          dis[i][next]=max(dis[i][v], mst[v][j].cost);
          q.push(next);
        }
      }
    }
    int q;cin>>q;
    for(int i=0;i<q;i++){
      int s,t;cin>>s>>t;s--;t--;
      cout<<sum-dis[s][t]<<endl;
    }
}

Submission Info

Submission Time
Task A - Graph
User zaki_
Language C++14 (GCC 5.4.1)
Score 700
Code Size 2113 Byte
Status AC
Exec Time 984 ms
Memory 152808 KB

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 256 KB
sample_2.txt AC 1 ms 256 KB
subtask_1_1.txt AC 2 ms 384 KB
subtask_1_10.txt AC 675 ms 138476 KB
subtask_1_11.txt AC 1 ms 256 KB
subtask_1_2.txt AC 591 ms 128372 KB
subtask_1_3.txt AC 775 ms 149480 KB
subtask_1_4.txt AC 535 ms 126080 KB
subtask_1_5.txt AC 555 ms 126208 KB
subtask_1_6.txt AC 615 ms 131824 KB
subtask_1_7.txt AC 768 ms 152808 KB
subtask_1_8.txt AC 535 ms 126080 KB
subtask_1_9.txt AC 570 ms 126460 KB
subtask_2_1.txt AC 780 ms 150376 KB
subtask_2_2.txt AC 775 ms 149736 KB
subtask_2_3.txt AC 783 ms 151144 KB
subtask_2_4.txt AC 781 ms 151016 KB
subtask_2_5.txt AC 538 ms 126208 KB
subtask_2_6.txt AC 585 ms 127096 KB
subtask_2_7.txt AC 611 ms 133872 KB
subtask_2_8.txt AC 780 ms 150504 KB
subtask_3_1.txt AC 948 ms 151016 KB
subtask_3_2.txt AC 964 ms 152040 KB
subtask_3_3.txt AC 717 ms 127488 KB
subtask_3_4.txt AC 746 ms 127740 KB
subtask_3_5.txt AC 855 ms 138732 KB
subtask_3_6.txt AC 911 ms 150120 KB
subtask_3_7.txt AC 984 ms 152168 KB
subtask_3_8.txt AC 965 ms 151784 KB