Submission #156079

#TimeUsernameProblemLanguageResultExecution timeMemory
156079IOrtroiii전압 (JOI14_voltage)C++14
0 / 100
65 ms19576 KiB
#include <bits/stdc++.h> using namespace std; const int N = 100100; int n, m; vector<int> g[N]; vector<int> tr[N]; int cnt[N]; int ds[N]; int bad; void dfs1(int v) { for (int u : g[v]) { if (ds[u] && ds[u] < ds[v] - 1) { if ((ds[v] & 1) == (ds[u] & 1)) { ++bad; cnt[v]++; cnt[u]--; } else { cnt[v]--; cnt[u]++; } } else if (!ds[u]) { ds[u] = ds[v] + 1; tr[v].emplace_back(u); dfs1(u); } } } void dfs2(int v) { for (int u : tr[v]) { dfs2(u); cnt[v] += cnt[u]; } } int main() { scanf("%d %d", &n, &m); for (int i = 1; i <= m; ++i) { int v, u; scanf("%d %d", &v, &u); g[v].emplace_back(u); g[u].emplace_back(v); } for (int i = 1; i <= n; ++i) { if (!ds[i]) { ds[i] = 1; dfs1(i); } } for (int i = 1; i <= n; ++i) { if (ds[i] == 1) { dfs2(i); } } int ans = 0; for (int i = 1; i <= n; ++i) { if (ds[i] > 1 && cnt[i] == bad) { ++ans; } } ans += (bad == 1); printf("%d\n", ans); }

Compilation message (stderr)

voltage.cpp: In function 'int main()':
voltage.cpp:41:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d %d", &n, &m);
    ~~~~~^~~~~~~~~~~~~~~~~
voltage.cpp:44:12: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d %d", &v, &u);
       ~~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...