Submission #954344

# Submission time Handle Problem Language Result Execution time Memory
954344 2024-03-27T16:13:59 Z amirhoseinfar1385 Swapping Cities (APIO20_swap) C++17
0 / 100
2000 ms 22204 KB
#include "swap.h"
#include<bits/stdc++.h>
using namespace std;
struct yal{
	int u,v,w,vas;
	bool operator <(yal b){
		return w<b.w;
	}
	int getad(int fu){
		return (fu^u^v);
	}
};
const int maxn=100000+10,lg=17;
int n,m,wlca[lg][maxn],inf=1e9+5,mainres[maxn];
vector<yal>alle;
vector<int>adjt[maxn];

struct dsu{
	int par[maxn];
	vector<int>allv[maxn];
	dsu(){
		for(int i=0;i<maxn;i++){
			par[i]=i;
			allv[i].push_back(i);
		}
	};
	int root(int u){
		if(u==par[u]){
			return u;
		}
		return par[u]=root(par[u]);
	}
	int con(int u,int v){
		int rootu=root(u),rootv=root(v);
		if(rootu!=rootv){
			par[rootu]=rootv;
			if((int)allv[rootu].size()<(int)allv[rootv].size()){
				swap(allv[rootu],allv[rootv]);
			}
			return 1;
		}else{
			return 0;
		}
	}
	void tagh(int u,int w){
		u=root(u);
		for(auto x:allv[u]){
			mainres[x]=min(mainres[x],w);
		}
		allv[u].clear();
	}
}ds;
int av=inf;

void init(int N, int M,std::vector<int> U, std::vector<int> V, std::vector<int> W) {
	n=N;
	m=M;
	alle.resize(m);
	for(int i=0;i<maxn;i++){
		mainres[i]=inf;
	}
	for(int i=0;i<m;i++){
		alle[i].u=U[i];
		alle[i].v=V[i];
		alle[i].w=W[i];
	}
	sort(alle.begin(),alle.end());
	for(int i=0;i<m;i++){
		if(ds.con(alle[i].u,alle[i].v)){
			alle[i].vas=1;
			adjt[alle[i].u].push_back(i);
			adjt[alle[i].v].push_back(i);
			if((int)adjt[alle[i].u].size()>2||(int)adjt[alle[i].v].size()>2){
				ds.tagh(alle[i].u,alle[i].w);
			}
		}else{
			ds.tagh(alle[i].u,alle[i].w);
		}
	}
}
int mx;
void dfsres(int u,int had,int par=-1,int len=0){
	if(had==u){
		mx=len;
		return ;
	}
	for(auto x:adjt[u]){
		int v=alle[x].getad(u);
		if(v==par){
			continue;
		}
		dfsres(v,had,u,max(len,alle[x].w));
	}
}

int getMinimumFuelCapacity(int X, int Y) {
  mx=inf;
  dfsres(X,Y);
  long long ret=max(mx,min(mainres[X],mainres[Y]));
  if(ret>=inf){
  	return -1;
  }
  return ret;
}
# Verdict Execution time Memory Grader output
1 Correct 5 ms 9816 KB Output is correct
2 Correct 5 ms 9900 KB Output is correct
3 Correct 5 ms 9820 KB Output is correct
4 Correct 6 ms 9896 KB Output is correct
5 Correct 5 ms 9820 KB Output is correct
6 Correct 5 ms 9820 KB Output is correct
7 Correct 6 ms 9816 KB Output is correct
8 Correct 5 ms 9816 KB Output is correct
9 Correct 44 ms 17848 KB Output is correct
10 Correct 59 ms 21740 KB Output is correct
11 Correct 73 ms 21560 KB Output is correct
12 Correct 70 ms 22204 KB Output is correct
13 Correct 57 ms 21728 KB Output is correct
14 Execution timed out 2025 ms 20708 KB Time limit exceeded
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 9816 KB Output is correct
2 Correct 5 ms 9900 KB Output is correct
3 Execution timed out 2056 ms 18380 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 9816 KB Output is correct
2 Correct 5 ms 9900 KB Output is correct
3 Correct 5 ms 9820 KB Output is correct
4 Correct 6 ms 9896 KB Output is correct
5 Correct 5 ms 9820 KB Output is correct
6 Correct 5 ms 9820 KB Output is correct
7 Correct 6 ms 9816 KB Output is correct
8 Correct 5 ms 9816 KB Output is correct
9 Incorrect 5 ms 9820 KB Output isn't correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 9820 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 9816 KB Output is correct
2 Correct 5 ms 9900 KB Output is correct
3 Correct 5 ms 9820 KB Output is correct
4 Correct 6 ms 9896 KB Output is correct
5 Correct 5 ms 9820 KB Output is correct
6 Correct 5 ms 9820 KB Output is correct
7 Correct 6 ms 9816 KB Output is correct
8 Correct 5 ms 9816 KB Output is correct
9 Correct 44 ms 17848 KB Output is correct
10 Correct 59 ms 21740 KB Output is correct
11 Correct 73 ms 21560 KB Output is correct
12 Correct 70 ms 22204 KB Output is correct
13 Correct 57 ms 21728 KB Output is correct
14 Execution timed out 2025 ms 20708 KB Time limit exceeded
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 9820 KB Output isn't correct
2 Halted 0 ms 0 KB -