Submission #60845


Source Code Expand

#include<cstdio>
#include<vector>
#include<numeric>
#include<algorithm>

#define rep(i,n) for(int i=0;i<(n);i++)

using namespace std;

class union_find{
	int n;
	vector<int> a;
public:
	union_find(int N):a(N,-1),n(N){}
	int find(int x){
		if(a[x]<0) return x;
		return a[x]=find(a[x]);
	}
	void unite(int x,int y){
		x=find(x),y=find(y);
		if(x!=y){ a[x]+=a[y]; a[y]=x; n--; }
	}
	int size(){ return n; }
	int size(int x){ return -a[find(x)]; }
};

struct edge{ int v,cost; };

int n;
vector<edge> G[100];

bool vis[100];
void dfs(int u,int pre){
	vis[u]=true;
	rep(i,G[u].size()){
		int v=G[u][i].v;
		if(v!=pre && !vis[v]) dfs(v,u);
	}
}

int main(){
	int m,k; scanf("%d%d%d",&n,&m,&k);
	union_find U(n);
	rep(i,m){
		int u,v,cost; scanf("%d%d%d",&u,&v,&cost); u--; v--;
		G[u].push_back((edge){v,cost});
		G[v].push_back((edge){u,cost});
		U.unite(u,v);
	}

	vector<int> tree,cycle;
	rep(u,n) rep(i,G[u].size()) {
		edge e=G[u][i];
		if(u<e.v){ // 二重カウントしないため
			rep(v,n) vis[v]=false;
			dfs(u,e.v);
			if(!vis[e.v]) tree.push_back(e.cost);
			else          cycle.push_back(e.cost);
		}
	}

	k-=U.size();
	if(k<=0) return puts("0"),0;

	sort(tree.begin(),tree.end());
	sort(cycle.begin(),cycle.end());

	if(!cycle.empty()){
		cycle[1]+=cycle[0];
		cycle.erase(cycle.begin());
	}

	vector<int> seq(tree.size()+cycle.size());
	merge(tree.begin(),tree.end(),cycle.begin(),cycle.end(),seq.begin());

	printf("%d\n",accumulate(seq.begin(),seq.begin()+k,0));

	return 0;
}

Submission Info

Submission Time
Task E - 独立記念日
User fura2
Language C++ (G++ 4.6.4)
Score 100
Code Size 1573 Byte
Status AC
Exec Time 22 ms
Memory 820 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:42:35: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
./Main.cpp:45:44: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]

Judge Result

Set Name nonloop loop
Score / Max Score 30 / 30 70 / 70
Status
AC × 34
AC × 66
Set Name Test Cases
nonloop nonloop/case_000.txt, nonloop/case_001.txt, nonloop/case_002.txt, nonloop/case_003.txt, nonloop/case_004.txt, nonloop/case_005.txt, nonloop/case_006.txt, nonloop/case_007.txt, nonloop/case_008.txt, nonloop/case_009.txt, nonloop/case_010.txt, nonloop/case_011.txt, nonloop/case_012.txt, nonloop/case_013.txt, nonloop/case_014.txt, nonloop/case_015.txt, nonloop/case_016.txt, nonloop/case_017.txt, nonloop/case_018.txt, nonloop/case_019.txt, nonloop/case_020.txt, nonloop/case_021.txt, nonloop/case_022.txt, nonloop/case_023.txt, nonloop/case_024.txt, nonloop/case_025.txt, nonloop/case_026.txt, nonloop/case_027.txt, nonloop/case_028.txt, nonloop/case_029.txt, nonloop/case_030.txt, nonloop/case_031.txt, nonloop/case_032.txt, nonloop/case_033.txt
loop loop/case_000.txt, loop/case_001.txt, loop/case_002.txt, loop/case_003.txt, loop/case_004.txt, loop/case_005.txt, loop/case_006.txt, loop/case_007.txt, loop/case_008.txt, loop/case_009.txt, loop/case_010.txt, loop/case_011.txt, loop/case_012.txt, loop/case_013.txt, loop/case_014.txt, loop/case_015.txt, loop/case_016.txt, loop/case_017.txt, loop/case_018.txt, loop/case_019.txt, loop/case_020.txt, loop/case_021.txt, loop/case_022.txt, loop/case_023.txt, loop/case_024.txt, loop/case_025.txt, loop/case_026.txt, loop/case_027.txt, loop/case_028.txt, loop/case_029.txt, loop/case_030.txt, loop/case_031.txt, loop/case_032.txt, loop/case_033.txt, loop/loop_case_000.txt, loop/loop_case_001.txt, loop/loop_case_002.txt, loop/loop_case_003.txt, loop/loop_case_004.txt, loop/loop_case_005.txt, loop/loop_case_006.txt, loop/loop_case_007.txt, loop/loop_case_008.txt, loop/loop_case_009.txt, loop/loop_case_010.txt, loop/loop_case_011.txt, loop/loop_case_012.txt, loop/loop_case_013.txt, loop/loop_case_014.txt, loop/loop_case_015.txt, loop/loop_case_016.txt, loop/loop_case_017.txt, loop/loop_case_018.txt, loop/loop_case_019.txt, loop/loop_case_020.txt, loop/loop_case_021.txt, loop/loop_case_022.txt, loop/loop_case_023.txt, loop/loop_case_024.txt, loop/loop_case_025.txt, loop/loop_case_026.txt, loop/loop_case_027.txt, loop/loop_case_028.txt, loop/loop_case_029.txt, loop/loop_case_030.txt, loop/loop_case_031.txt
Case Name Status Exec Time Memory
loop/case_000.txt AC 19 ms 788 KB
loop/case_001.txt AC 19 ms 792 KB
loop/case_002.txt AC 19 ms 792 KB
loop/case_003.txt AC 19 ms 788 KB
loop/case_004.txt AC 19 ms 792 KB
loop/case_005.txt AC 19 ms 796 KB
loop/case_006.txt AC 20 ms 632 KB
loop/case_007.txt AC 19 ms 792 KB
loop/case_008.txt AC 19 ms 780 KB
loop/case_009.txt AC 19 ms 796 KB
loop/case_010.txt AC 19 ms 788 KB
loop/case_011.txt AC 19 ms 792 KB
loop/case_012.txt AC 19 ms 792 KB
loop/case_013.txt AC 19 ms 784 KB
loop/case_014.txt AC 20 ms 696 KB
loop/case_015.txt AC 22 ms 788 KB
loop/case_016.txt AC 19 ms 792 KB
loop/case_017.txt AC 19 ms 788 KB
loop/case_018.txt AC 19 ms 792 KB
loop/case_019.txt AC 19 ms 796 KB
loop/case_020.txt AC 20 ms 792 KB
loop/case_021.txt AC 18 ms 792 KB
loop/case_022.txt AC 19 ms 696 KB
loop/case_023.txt AC 19 ms 792 KB
loop/case_024.txt AC 19 ms 792 KB
loop/case_025.txt AC 19 ms 796 KB
loop/case_026.txt AC 19 ms 696 KB
loop/case_027.txt AC 19 ms 688 KB
loop/case_028.txt AC 20 ms 692 KB
loop/case_029.txt AC 19 ms 796 KB
loop/case_030.txt AC 20 ms 784 KB
loop/case_031.txt AC 19 ms 688 KB
loop/case_032.txt AC 19 ms 784 KB
loop/case_033.txt AC 19 ms 796 KB
loop/loop_case_000.txt AC 19 ms 796 KB
loop/loop_case_001.txt AC 19 ms 792 KB
loop/loop_case_002.txt AC 19 ms 788 KB
loop/loop_case_003.txt AC 19 ms 792 KB
loop/loop_case_004.txt AC 19 ms 792 KB
loop/loop_case_005.txt AC 19 ms 788 KB
loop/loop_case_006.txt AC 19 ms 668 KB
loop/loop_case_007.txt AC 19 ms 792 KB
loop/loop_case_008.txt AC 19 ms 788 KB
loop/loop_case_009.txt AC 19 ms 700 KB
loop/loop_case_010.txt AC 19 ms 792 KB
loop/loop_case_011.txt AC 18 ms 788 KB
loop/loop_case_012.txt AC 18 ms 792 KB
loop/loop_case_013.txt AC 19 ms 788 KB
loop/loop_case_014.txt AC 19 ms 792 KB
loop/loop_case_015.txt AC 19 ms 796 KB
loop/loop_case_016.txt AC 19 ms 668 KB
loop/loop_case_017.txt AC 19 ms 792 KB
loop/loop_case_018.txt AC 19 ms 792 KB
loop/loop_case_019.txt AC 19 ms 700 KB
loop/loop_case_020.txt AC 19 ms 700 KB
loop/loop_case_021.txt AC 19 ms 800 KB
loop/loop_case_022.txt AC 19 ms 788 KB
loop/loop_case_023.txt AC 19 ms 704 KB
loop/loop_case_024.txt AC 19 ms 796 KB
loop/loop_case_025.txt AC 20 ms 792 KB
loop/loop_case_026.txt AC 19 ms 784 KB
loop/loop_case_027.txt AC 20 ms 784 KB
loop/loop_case_028.txt AC 19 ms 792 KB
loop/loop_case_029.txt AC 19 ms 764 KB
loop/loop_case_030.txt AC 19 ms 796 KB
loop/loop_case_031.txt AC 19 ms 792 KB
nonloop/case_000.txt AC 19 ms 788 KB
nonloop/case_001.txt AC 19 ms 792 KB
nonloop/case_002.txt AC 18 ms 820 KB
nonloop/case_003.txt AC 19 ms 672 KB
nonloop/case_004.txt AC 19 ms 784 KB
nonloop/case_005.txt AC 19 ms 788 KB
nonloop/case_006.txt AC 19 ms 796 KB
nonloop/case_007.txt AC 19 ms 796 KB
nonloop/case_008.txt AC 19 ms 788 KB
nonloop/case_009.txt AC 19 ms 668 KB
nonloop/case_010.txt AC 19 ms 788 KB
nonloop/case_011.txt AC 19 ms 788 KB
nonloop/case_012.txt AC 19 ms 792 KB
nonloop/case_013.txt AC 19 ms 784 KB
nonloop/case_014.txt AC 19 ms 792 KB
nonloop/case_015.txt AC 19 ms 784 KB
nonloop/case_016.txt AC 18 ms 788 KB
nonloop/case_017.txt AC 19 ms 792 KB
nonloop/case_018.txt AC 19 ms 784 KB
nonloop/case_019.txt AC 20 ms 816 KB
nonloop/case_020.txt AC 20 ms 660 KB
nonloop/case_021.txt AC 19 ms 796 KB
nonloop/case_022.txt AC 20 ms 784 KB
nonloop/case_023.txt AC 19 ms 792 KB
nonloop/case_024.txt AC 19 ms 796 KB
nonloop/case_025.txt AC 19 ms 792 KB
nonloop/case_026.txt AC 19 ms 784 KB
nonloop/case_027.txt AC 19 ms 628 KB
nonloop/case_028.txt AC 20 ms 700 KB
nonloop/case_029.txt AC 21 ms 780 KB
nonloop/case_030.txt AC 20 ms 632 KB
nonloop/case_031.txt AC 21 ms 796 KB
nonloop/case_032.txt AC 19 ms 692 KB
nonloop/case_033.txt AC 20 ms 788 KB