Submission #399530


Source Code Expand

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

#define rep(i,x,y) for(int i=(x); i<(y); ++i)
#define debug(x) #x << "=" << x
#ifdef DEBUG
	#define dump(x) cerr << debug(x) << " (LINE:" << __LINE__ << ")" << endl;
#else
	#define dump(x)
#endif

struct UnionFind{
	vector<int> par,rank;

	void Init(int n){
		par.assign(n,0);
		rank.assign(n,0);
		rep(i,0,n) par[i]=i;
	}

	int Find(int x){
		if(x==par[x]) return x;
		return par[x]=Find(par[x]);
	}

	void Unite(int x,int y){
		x=Find(x);
		y=Find(y);
		if(x==y) return;
		if(rank[x]<rank[y]){
			par[x]=y;
		}else{
			par[y]=x;
			if(rank[y]==rank[x]) ++rank[x];
		}
	}

	bool Same(int x,int y){
		return Find(x)==Find(y);
	}
};

typedef pair<int,int> pii;

void Solve(){
	int n,m,k;
	cin >> n >> m >> k;

	vector<int> a(m),b(m),c(m);
	vector<pii> ps;
	rep(i,0,m){
		//cin >> a[i] >> b[i] >> c[i];
		scanf("%d%d%d",&a[i],&b[i],&c[i]);
		--a[i]; --b[i];
		ps.push_back(make_pair(c[i],i));
	}
	sort(ps.rbegin(),ps.rend());

	vector<int> ans(m);
	vector<UnionFind> us(k);
	rep(i,0,k) us[i].Init(n);
	rep(i,0,m){
		int idx=ps[i].second;
		int ai=a[idx],bi=b[idx];
		int lb=0,ub=k;
		while(ub-lb>1){
			int mid=(lb+ub)/2;
			if(!us[mid].Same(ai,bi)) ub=mid;
			else lb=mid;
		}
		if(!us[lb].Same(ai,bi)) ub=lb;
		if(ub==k) continue;
		ans[idx]=ub+1;
		us[ub].Unite(ai,bi);
	}

	//rep(i,0,m) cout << ans[i] << endl;
	rep(i,0,m) printf("%d\n",ans[i]);
}

int main(){
	//cin.tie(0);
	//ios::sync_with_stdio(false);
	Solve();
}

Submission Info

Submission Time
Task K - 遺産相続
User kjfakjfks
Language C++11 (GCC 4.8.1)
Score 100
Code Size 1554 Byte
Status AC
Exec Time 672 ms
Memory 87136 KiB

Compile Error

./Main.cpp: In function ‘void Solve()’:
./Main.cpp:53:36: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d%d",&a[i],&b[i],&c[i]);
                                    ^

Judge Result

Set Name Subtask01 Subtask02
Score / Max Score 15 / 15 85 / 85
Status
AC × 19
AC × 48
Set Name Test Cases
Subtask01 sample-01.txt, sample-02.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
Subtask02 sample-01.txt, sample-02.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, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt, 02-20.txt, 02-21.txt, 02-22.txt, 02-23.txt, 02-24.txt, 02-25.txt, 02-26.txt, 02-27.txt, 02-28.txt, 02-29.txt
Case Name Status Exec Time Memory
01-01.txt AC 89 ms 1084 KiB
01-02.txt AC 481 ms 8816 KiB
01-03.txt AC 397 ms 8832 KiB
01-04.txt AC 405 ms 8932 KiB
01-05.txt AC 53 ms 1860 KiB
01-06.txt AC 30 ms 1212 KiB
01-07.txt AC 29 ms 1216 KiB
01-08.txt AC 398 ms 8880 KiB
01-09.txt AC 409 ms 8828 KiB
01-10.txt AC 398 ms 8828 KiB
01-11.txt AC 400 ms 8872 KiB
01-12.txt AC 399 ms 8868 KiB
01-13.txt AC 348 ms 8828 KiB
01-14.txt AC 394 ms 8876 KiB
01-15.txt AC 384 ms 8828 KiB
01-16.txt AC 382 ms 8828 KiB
01-17.txt AC 384 ms 8864 KiB
02-01.txt AC 41 ms 2444 KiB
02-02.txt AC 468 ms 9480 KiB
02-03.txt AC 480 ms 16684 KiB
02-04.txt AC 638 ms 87028 KiB
02-05.txt AC 223 ms 80648 KiB
02-06.txt AC 200 ms 80060 KiB
02-07.txt AC 197 ms 80012 KiB
02-08.txt AC 640 ms 87036 KiB
02-09.txt AC 640 ms 87028 KiB
02-10.txt AC 620 ms 87036 KiB
02-11.txt AC 618 ms 87040 KiB
02-12.txt AC 609 ms 87036 KiB
02-13.txt AC 476 ms 11048 KiB
02-14.txt AC 483 ms 11044 KiB
02-15.txt AC 494 ms 11048 KiB
02-16.txt AC 465 ms 11128 KiB
02-17.txt AC 465 ms 11128 KiB
02-18.txt AC 461 ms 11128 KiB
02-19.txt AC 571 ms 87032 KiB
02-20.txt AC 512 ms 16680 KiB
02-21.txt AC 521 ms 16684 KiB
02-22.txt AC 552 ms 32376 KiB
02-23.txt AC 555 ms 32288 KiB
02-24.txt AC 669 ms 87036 KiB
02-25.txt AC 672 ms 87032 KiB
02-26.txt AC 671 ms 87076 KiB
02-27.txt AC 610 ms 87032 KiB
02-28.txt AC 610 ms 87032 KiB
02-29.txt AC 620 ms 87136 KiB
sample-01.txt AC 30 ms 1160 KiB
sample-02.txt AC 27 ms 1084 KiB