답안 #920872

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
920872 2024-02-03T07:01:39 Z itslq Monthly railway pass (LMIO18_menesinis_bilietas) C++17
6 / 100
618 ms 167564 KB
#include <bits/stdc++.h>
#include <unordered_map>
#include <unordered_set>
using namespace std;

#define int long long
 
vector<int> pa, rk;
 
int getParent(int n) {
    if (pa[n] == n) return n;
    return pa[n] = getParent(pa[n]);
}
 
void mge(int x, int y) {
    if (x == y) return;
 
    if (rk[x] > rk[y]) {
        pa[y] = x;
    } else if (rk[x] == rk[y]) {
        pa[y] = x;
        rk[x]++;
    } else {
        pa[x] = y;
    }
}
 
signed main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
 
    int N, M, A, B, x, y;
    char T;
    cin >> N >> M;
 
    pa.resize(N);
    rk.resize(N);
    for (int i = 0; i < N; i++) pa[i] = i;
    fill(rk.begin(), rk.end(), 0);
 
    unordered_map<int, unordered_set<int>> busadj;
    vector<pair<int, int>> bus;
    vector<int> ch[N];
 
    while (M--) {
        cin >> A >> B >> T;
        A--; B--;
 
        if (T == 'T') {
            mge(getParent(A), getParent(B));
        } else {
            bus.push_back(make_pair(A, B));
        }
    }
 
    for (int i = 0; i < N; i++) {
        ch[getParent(i)].push_back(i);
    }
 
    for (pair<int, int> route: bus) {
        x = getParent(route.first);
        y = getParent(route.second);
  
        if (x == y) continue;
 
        busadj[x].insert(y);
        busadj[y].insert(x);
    }
 
    int C = 0;
 
    for (pair<int, unordered_set<int>> station: busadj) {
        if (station.second.size() + 1 == busadj.size()) {
            C += ch[station.first].size();
        }
    }
 
    cout << C;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 93 ms 17580 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 33 ms 33320 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 3 ms 1372 KB Output is correct
5 Correct 1 ms 1116 KB Output is correct
6 Correct 457 ms 47248 KB Output is correct
7 Correct 618 ms 167564 KB Output is correct
8 Correct 10 ms 6356 KB Output is correct
9 Correct 17 ms 7636 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 3 ms 1372 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 604 KB Output is correct
8 Correct 2 ms 860 KB Output is correct
9 Correct 2 ms 604 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 0 ms 344 KB Output is correct
12 Correct 3 ms 856 KB Output is correct
13 Incorrect 1 ms 416 KB Output isn't correct
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 604 KB Output is correct
5 Correct 2 ms 860 KB Output is correct
6 Correct 2 ms 604 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 0 ms 344 KB Output is correct
9 Correct 3 ms 856 KB Output is correct
10 Incorrect 1 ms 416 KB Output isn't correct
11 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 604 KB Output is correct
5 Correct 2 ms 860 KB Output is correct
6 Correct 2 ms 604 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 0 ms 344 KB Output is correct
9 Correct 3 ms 856 KB Output is correct
10 Incorrect 1 ms 416 KB Output isn't correct
11 Halted 0 ms 0 KB -