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 |
|
|
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 |