Submission #207616

# Submission time Handle Problem Language Result Execution time Memory
207616 2020-03-08T06:45:05 Z junodeveloper timeismoney (balkan11_timeismoney) C++17
75 / 100
2000 ms 1624 KB
#include <bits/stdc++.h>
#define sz(x) ((int)x.size())
#define fi first
#define se second
#define pb push_back
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> pll;
struct edge {
	int u,v;
	int v1,v2;
	ll val;
	bool operator<(const edge& b)const {
		return val<b.val;
	}
};
int n,m;
int par[210];
ll a1=1e6,a2=1e6;
vector<edge> e,rv;
int pn(int u){return u==par[u]?u:(par[u]=pn(par[u]));}
void us(int a,int b) {
	a=pn(a),b=pn(b);
	par[b]=a;
}
pll f(pll p) {
	for(int i=0;i<=n;i++)par[i]=i;
	for(auto& it:e)it.val=it.v1*p.fi+it.v2*p.se;
	sort(e.begin(),e.end());
	ll s1=0,s2=0;
	vector<edge> r;
	for(auto& it:e) {
		if(pn(it.u)!=pn(it.v)) {
			us(it.u,it.v);
			s1+=it.v1;
			s2+=it.v2;
			r.pb(it);
		}
	}
	if(s1*s2<a1*a2) {
		a1=s1,a2=s2;
		rv=r;
	}
	return {s1,s2};
}
int dbg;
void solve(pll p1,pll p2) {
	if(p1==p2)return;
	pll v(p1.se-p2.se,p2.fi-p1.fi);
	pll p=f(v);
	if(p==p1||p==p2)return;
	solve(p1,p);solve(p,p2);
}
int main() {
	ios::sync_with_stdio(false);cin.tie(0);
	cin>>n>>m;
	for(int i=0;i<m;i++) {
		int x,y,v1,v2;
		cin>>x>>y>>v1>>v2;
		e.pb({x,y,v1,v2});
	}
	pll p1=f({1,0});
	pll p2=f({0,1});
	solve(p1,p2);
	cout<<a1<<' '<<a2<<'\n';
	for(auto& it:rv)cout<<it.u<<' '<<it.v<<'\n';
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 5 ms 376 KB Output is correct
2 Correct 5 ms 376 KB Output is correct
3 Correct 5 ms 376 KB Output is correct
4 Correct 5 ms 380 KB Output is correct
5 Correct 5 ms 376 KB Output is correct
6 Correct 5 ms 376 KB Output is correct
7 Correct 5 ms 376 KB Output is correct
8 Correct 11 ms 824 KB Output is correct
9 Correct 5 ms 376 KB Output is correct
10 Correct 5 ms 376 KB Output is correct
11 Correct 5 ms 376 KB Output is correct
12 Correct 5 ms 376 KB Output is correct
13 Correct 5 ms 376 KB Output is correct
14 Correct 9 ms 376 KB Output is correct
15 Correct 8 ms 376 KB Output is correct
16 Execution timed out 2090 ms 1624 KB Time limit exceeded
17 Execution timed out 2086 ms 1528 KB Time limit exceeded
18 Execution timed out 2090 ms 1580 KB Time limit exceeded
19 Execution timed out 2086 ms 1144 KB Time limit exceeded
20 Execution timed out 2081 ms 1052 KB Time limit exceeded