QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#186037#5672. Connectivity Problemaesthetic#ML 1ms3468kbC++17727b2023-09-23 01:18:102023-09-23 01:18:10

Judging History

你现在查看的是最新测评结果

  • [2023-09-23 01:18:10]
  • 评测
  • 测评结果:ML
  • 用时:1ms
  • 内存:3468kb
  • [2023-09-23 01:18:10]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;
const int MAXN = 100100;
int n;

int uf[MAXN];
int find(int x) { return uf[x] != -1 ? uf[x] = find(uf[x]) : x; }
bool join(int x, int y)
{
    if((x = find(x)) == (y = find(y)))
        return false;
    uf[y] = x;
    return true;
}

int main()
{
    #ifndef ONLINE_JUDGE
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout); 
    #endif
    ios_base::sync_with_stdio(false), cin.tie(NULL);
    for(int i = 1; i <= 10010; ++i)
        uf[i] = -1;
    cin >> n;
    for(int i = 1, u, v; i <= n; ++i)
    {
        cin >> u >> v;
        if(join(u, v))
            cout << "N\n";
        else
            cout << "Y\n";
    }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3468kb

input:

12
3 4
4 9
8 1
2 3
5 6
2 9
5 9
7 3
4 8
5 6
1 8
6 1

output:

N
N
N
N
N
Y
N
N
N
Y
Y
Y

result:

ok 12 lines

Test #2:

score: -100
Memory Limit Exceeded

input:

100
26 39
2 21
4 17
2 16
12 19
27 0
8 43
10 12
6 29
5 9
19 32
13 47
13 36
3 6
13 18
9 40
11 40
29 16
7 24
10 35
19 41
6 24
28 21
26 35
23 47
2 30
19 17
10 6
22 6
15 25
19 11
2 8
11 25
14 23
27 1
1 16
16 0
23 34
2 25
10 17
3 35
23 37
13 0
22 7
27 29
15 13
10 5
18 40
28 46
19 0
23 40
4 46
19 3
20 39
1...

output:


result: