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
2015-05-07 20:16:05+0900
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
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