제출 #1181576

#제출 시각아이디문제언어결과실행 시간메모리
1181576agussMarshmallow Molecules (CCO19_day2problem2)C++20
5 / 25
4094 ms143232 KiB
#include <bits/stdc++.h>

#define dbg(x) cerr << #x << ": " << x << '\n';
#define dbgv(v) cerr << #v << ": "; for(auto &el : v) cerr << el << " "; cerr << '\n';

using namespace std;
using ll = long long;

bool test_cases = 0;
vector<vector<int>> arr;
unordered_map<int, unordered_map<int, int>> ma;
int ans;
void funcionquenoesdfsnibfs(int node){
    if(arr[node].empty()) return;
    for(int i = 0; i < arr[node].size() - 1; i++){
        for(int j = i + 1; j < arr[node].size(); j++){
            int x = min(arr[node][i], arr[node][j]);
            int y = max(arr[node][i], arr[node][j]);
            if(ma[x].count(y)) continue;
            arr[x].push_back(y);
            ma[x][y]++;
            ans++;
        }
    }
}
void solve(){
    int n, m;
    cin >> n >> m;
    arr.assign(n, vector<int>());
    ans = m;
    for(int i = 0; i < m; i++){
        int a, b;
        cin >> a >> b;
        a--, b--;
        if(a < b){
            arr[a].push_back(b);
            ma[a][b]++;
            continue;
        }
        arr[b].push_back(a);
        ma[b][a]++;
    }
    for(int i = 0; i < n - 1; i++){
        funcionquenoesdfsnibfs(i);
    }
    cout << ans;
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    if(test_cases){
        int t;
        cin >> t;
        for(int i = 0; i < t; i++){
            solve();
        }
        return 0;
    }
    solve();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...