Submission #4419187


Source Code Expand

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>

#define N 201000
#define ll long long
#define RG register
#define pr pair<ll,int> 
#define mkp make_pair
#define fi first
#define sc second

using namespace std;

inline int read(){
    RG int x=0,t=1;RG char ch=getchar();
    while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
    if(ch=='-')t=-1,ch=getchar();
    while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
    return x*t;
}

int n,Q,top,rem[N],fa[N];
struct mona { int x,y,w; } s[N<<3];
inline bool cmp(mona x,mona y) { return x.w<y.w; }
inline int Find(int x) { if(fa[x]!=x) fa[x]=Find(fa[x]); return fa[x]; }

int main(){
	n=read(),Q=read();
	for(RG int i=1;i<=n;++i) rem[i]=2e9,fa[i]=i;
	while(Q--){
		int A=read()+1,B=read()+1,C=read();
		s[++top]=(mona) { A,B,C };
		rem[A]=min(rem[A],C+1),rem[B]=min(rem[B],C+2);
	}
	for(RG int i=1;i<=n;++i) { int j=i==1?n:i-1; rem[i]=min(rem[j]+2,rem[i]); }
	for(RG int i=1;i<=n;++i) { int j=i==1?n:i-1; rem[i]=min(rem[j]+2,rem[i]); }
	for(RG int i=1;i<=n;++i) { int j=i==n?1:i+1; s[++top]=(mona) { i,j,rem[i] }; }
	sort(s+1,s+1+top,cmp); ll ans=0;
	for(RG int i=1;i<=top;++i){
		int fx=Find(s[i].x),fy=Find(s[i].y);
		if(fx!=fy) fa[fx]=fy,ans+=s[i].w;
	}   printf("%lld\n",ans);
}

Submission Info

Submission Time
Task G - Zigzag MST
User Love_mona
Language C++ (GCC 5.4.1)
Score 1300
Code Size 1303 Byte
Status AC
Exec Time 102 ms
Memory 9856 KB

Judge Result

Set Name sample all
Score / Max Score 0 / 0 1300 / 1300
Status
AC × 3
AC × 36
Set Name Test Cases
sample sample-01.txt, sample-02.txt, sample-03.txt
all sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, sample-01.txt, sample-02.txt, sample-03.txt
Case Name Status Exec Time Memory
01-01.txt AC 1 ms 256 KB
01-02.txt AC 46 ms 4352 KB
01-03.txt AC 85 ms 8064 KB
01-04.txt AC 33 ms 7296 KB
01-05.txt AC 21 ms 6528 KB
01-06.txt AC 26 ms 6784 KB
01-07.txt AC 22 ms 6144 KB
01-08.txt AC 21 ms 6016 KB
01-09.txt AC 25 ms 5888 KB
01-10.txt AC 53 ms 5888 KB
01-11.txt AC 71 ms 5120 KB
01-12.txt AC 84 ms 7936 KB
01-13.txt AC 84 ms 7936 KB
01-14.txt AC 84 ms 7936 KB
01-15.txt AC 86 ms 7936 KB
01-16.txt AC 85 ms 7936 KB
01-17.txt AC 85 ms 7936 KB
01-18.txt AC 69 ms 9856 KB
01-19.txt AC 22 ms 6144 KB
01-20.txt AC 23 ms 5888 KB
01-21.txt AC 39 ms 5888 KB
01-22.txt AC 66 ms 7936 KB
01-23.txt AC 66 ms 7936 KB
01-24.txt AC 22 ms 7808 KB
01-25.txt AC 102 ms 9856 KB
01-26.txt AC 33 ms 7424 KB
01-27.txt AC 29 ms 6784 KB
01-28.txt AC 58 ms 6784 KB
01-29.txt AC 67 ms 5760 KB
01-30.txt AC 80 ms 8832 KB
sample-01.txt AC 1 ms 256 KB
sample-02.txt AC 1 ms 256 KB
sample-03.txt AC 1 ms 256 KB