Submission #74540441


Source Code Expand

#include<bits/stdc++.h>
using namespace std;

#define int long long 

const int N=3000+5;

bool st;
int n;
int a[N][N],f[N];
struct node{int id,num,dep;}x[N];
bool cmp(node a,node b) {
	if(a.num!=b.num) return a.num<b.num;
	return a.id<b.id;
}
struct edge{int u,v,w;};
vector<edge> g[N];
int fa[N][20],dis[N],dep[N];
inline int lca(int u,int v) {
	if(dis[u]<dis[v]) swap(u,v);
	if(dis[u]!=dis[v]) {
		for(int i=12;i>=0;i--) {
			if(dis[fa[u][i]]>=dis[v]) u=fa[u][i];
		}
	}
	if(u==v) return u;
	for(int i=12;i>=0;i--) {
		if(fa[u][i]!=fa[v][i]) u=fa[u][i],v=fa[v][i];
	}return fa[u][0];
}
inline void dfs(int u) {
	fa[u][0]=f[u];
	for(int i=1;i<=12;i++) fa[u][i]=fa[fa[u][i-1]][i-1];
	for(int i=0;i<g[u].size();i++) {
		int v=g[u][i].v;
		if(v==f[u]) continue;
		dep[v]=dep[u]+g[u][i].w;
		dfs(v);
	}
}
bool ed;

signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cerr<<(double)(&st-&ed)/1024/1024<<'\n';
	cin>>n;
	for(int i=1;i<=n;i++) {
		for(int j=i+1;j<=n;j++) {
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;i++) x[i].id=i,x[i].num=a[1][i];
	sort(x+1,x+n+1,cmp);
	for(int i=2;i<=n;i++) {
		int maxn=-1,maxid=0,u=x[i].id;
		for(int j=i-1;j>=1;j--) {
			int v=x[j].id;
			if(a[1][u]!=a[1][v]+a[min(u,v)][max(u,v)]) continue;
			if(dis[v]>maxn) maxn=dis[v],maxid=v; 
		}
		int w=a[min(u,maxid)][max(u,maxid)];
		f[u]=maxid,dis[u]=dis[maxid]+1;
		g[u].push_back({u,maxid,w});
		g[maxid].push_back({maxid,u,w});
	}
	dfs(1);
	for(int i=1;i<=n;i++) {
		for(int j=i+1;j<=n;j++) {
			int s=lca(i,j);
			if(dep[i]+dep[j]-2*dep[s]!=a[i][j])  {
				cout<<"No"<<'\n';
				return 0;
			}
		}
	}cout<<"Yes\n";
	return 0;
}

Submission Info

Submission Time
Task E - Tree Distance
User wallacewan
Language C++23 (GCC 15.2.0)
Score 475
Code Size 1706 Byte
Status AC
Exec Time 512 ms
Memory 51284 KiB

Compile Error

./Main.cpp: In function 'void dfs(long long int)':
./Main.cpp:34:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<edge>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |         for(int i=0;i<g[u].size();i++) {
      |                     ~^~~~~~~~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 475 / 475
Status
AC × 3
AC × 33
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 02_max_00.txt, 02_max_01.txt, 02_max_02.txt, 02_max_03.txt, 02_max_04.txt, 03_corner_00.txt, 03_corner_01.txt, 03_corner_02.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 2 ms 4032 KiB
00_sample_01.txt AC 1 ms 4028 KiB
00_sample_02.txt AC 2 ms 3928 KiB
01_random_00.txt AC 13 ms 9120 KiB
01_random_01.txt AC 12 ms 9148 KiB
01_random_02.txt AC 1 ms 3864 KiB
01_random_03.txt AC 14 ms 8780 KiB
01_random_04.txt AC 7 ms 6096 KiB
01_random_05.txt AC 28 ms 11580 KiB
01_random_06.txt AC 46 ms 11200 KiB
01_random_07.txt AC 4 ms 5056 KiB
01_random_08.txt AC 55 ms 11224 KiB
01_random_09.txt AC 2 ms 4804 KiB
01_random_10.txt AC 2 ms 4412 KiB
01_random_11.txt AC 10 ms 6568 KiB
01_random_12.txt AC 9 ms 5840 KiB
01_random_13.txt AC 3 ms 4928 KiB
01_random_14.txt AC 10 ms 6056 KiB
01_random_15.txt AC 15 ms 7576 KiB
01_random_16.txt AC 3 ms 4548 KiB
01_random_17.txt AC 15 ms 8832 KiB
01_random_18.txt AC 22 ms 7644 KiB
01_random_19.txt AC 2 ms 4556 KiB
01_random_20.txt AC 13 ms 6668 KiB
01_random_21.txt AC 4 ms 4812 KiB
02_max_00.txt AC 294 ms 51284 KiB
02_max_01.txt AC 301 ms 50996 KiB
02_max_02.txt AC 466 ms 50896 KiB
02_max_03.txt AC 512 ms 50896 KiB
02_max_04.txt AC 250 ms 50908 KiB
03_corner_00.txt AC 1 ms 3864 KiB
03_corner_01.txt AC 1 ms 3920 KiB
03_corner_02.txt AC 2 ms 3932 KiB