Submission #2585046


Source Code Expand

#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<bitset>
#include<string>
#include<cstdio>
#include<cctype>
#include<cassert>
#include<cstdlib>
#include<cstring>
#include<sstream>
#include<iostream>
#include<algorithm>
 
#define For(i,x,y) for (int i=x;i<y;i++)
#define pb push_back
#define mp make_pair
#define fi first
#define se second
 
#define dprintf(...) fprintf(stderr,__VA_ARGS__)
using namespace std;
 
int IN(){
	int c,f,x;
	while (!isdigit(c=getchar())&&c!='-');c=='-'?(f=1,x=0):(f=0,x=c-'0');
	while (isdigit(c=getchar())) x=(x<<1)+(x<<3)+c-'0';return !f?x:-x;
}
 
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef vector<int> Vi;
 
const int N=400000+19;
const ll oo=1ll<<40;
 
struct Edge{
	int x,y;
	ll z;
	bool operator < (const Edge &B) const {return z<B.z;}
} E[N];
int fa[N];
ll val[N],tmp=oo;
int n,m,Qc,A,B,C;
 
int getf(int x){
	return fa[x]==x?x:fa[x]=getf(fa[x]);
}
ll Kruskal(){
	ll res=0;
	For(i,0,n) fa[i]=i;
	sort(E,E+m);
	For(i,0,m){
		int x=getf(E[i].x),y=getf(E[i].y);
		if (x!=y) fa[x]=y,res+=E[i].z;
	}
	return res;
}
 
int main(){
	n=IN();Qc=IN();
	For(i,0,n) val[i]=oo;
	while (Qc--){
		A=IN(),B=IN(),C=IN();
		E[m++]=(Edge){A,B,C};
		val[A]=min(val[A],C+1ll);
		val[B]=min(val[B],C+2ll);
	}
	for (int i=0,x=0;i<3*n;i++,x=(x+1)%n){
		val[x]=min(val[x],tmp);
		tmp=min(tmp,val[x])+2;
	}
	For(i,0,n) E[m++]=(Edge){i,(i+1)%n,val[i]};
	cout<<Kruskal()<<endl;
}

Submission Info

Submission Time
Task G - Zigzag MST
User zjqaq
Language C++14 (GCC 5.4.1)
Score 1300
Code Size 1514 Byte
Status AC
Exec Time 79 ms
Memory 13824 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 2 ms 4352 KB
01-02.txt AC 41 ms 6400 KB
01-03.txt AC 77 ms 11008 KB
01-04.txt AC 24 ms 10240 KB
01-05.txt AC 16 ms 8960 KB
01-06.txt AC 20 ms 9472 KB
01-07.txt AC 19 ms 8320 KB
01-08.txt AC 19 ms 8064 KB
01-09.txt AC 24 ms 7936 KB
01-10.txt AC 49 ms 9984 KB
01-11.txt AC 64 ms 9216 KB
01-12.txt AC 78 ms 10624 KB
01-13.txt AC 77 ms 10752 KB
01-14.txt AC 77 ms 10752 KB
01-15.txt AC 79 ms 10752 KB
01-16.txt AC 77 ms 10752 KB
01-17.txt AC 77 ms 10752 KB
01-18.txt AC 57 ms 13824 KB
01-19.txt AC 18 ms 8320 KB
01-20.txt AC 22 ms 7936 KB
01-21.txt AC 38 ms 9984 KB
01-22.txt AC 61 ms 10752 KB
01-23.txt AC 61 ms 10752 KB
01-24.txt AC 18 ms 11008 KB
01-25.txt AC 77 ms 13824 KB
01-26.txt AC 24 ms 10624 KB
01-27.txt AC 26 ms 9472 KB
01-28.txt AC 55 ms 11520 KB
01-29.txt AC 60 ms 10240 KB
01-30.txt AC 73 ms 12288 KB
sample-01.txt AC 2 ms 4352 KB
sample-02.txt AC 2 ms 4352 KB
sample-03.txt AC 2 ms 4352 KB