結果
| 問題 |
No.556 仁義なきサルたち
|
| コンテスト | |
| ユーザー |
greentea011
|
| 提出日時 | 2019-03-28 12:10:00 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 4 ms / 2,000 ms |
| コード長 | 931 bytes |
| コンパイル時間 | 1,081 ms |
| コンパイル使用メモリ | 29,312 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-12 17:24:58 |
| 合計ジャッジ時間 | 916 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 22 |
ソースコード
#include <stdio.h>
int s[10010];
int whoisboss(int a) {
if(s[a]&0x80000000) return a;
else {
s[a]=whoisboss(s[a]);
return s[a];
}
}
int main() {
int n,m;
scanf("%d %d",&n,&m);
for (int i=1;i<=n;i++) {
s[i]= 0x80000000 + 1;
}
int a,b;
int ba,bb;
for (int i=1;i<=m;i++) {
scanf("%d %d",&a,&b);
ba=whoisboss(a);
bb=whoisboss(b);
if (s[ba]>s[bb]) {
s[ba]+=s[bb]&0x7FFFFFFF;
s[bb]=a;
}
else if (s[ba]==s[bb]) {
if (ba<bb) {
s[ba]+=s[bb]&0x7FFFFFFF;
s[bb]=a;
}
else if (bb<ba) {
s[bb]+=s[ba]&0x7FFFFFFF;
s[ba]=b;
}
}
else {
s[bb]+=s[ba]&0x7FFFFFFF;
s[ba]=b;
}
}
for (int i=1;i<=n;i++){
printf("%d\n",whoisboss(i));
}
}
greentea011