제출 #156141

#제출 시각아이디문제언어결과실행 시간메모리
156141Flying_dragon_02전압 (JOI14_voltage)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define mp make_pair typedef pair<int, int> ii; const int mod = 1e9 + 7; const int inf = 1e9; int add(int x, int y) { return (1ll * x + 1ll * y) % mod; } int del(int x, int y) { return ((1ll * x - 1ll * y) % mod + mod) % mod; } int mul(int x, int y) { return (1ll * x * 1ll * y) % mod; } const int N = 1e5 + 5; int n, m, bad[N], badEdge, ans, parity[N], dist[N], low[N]; vector<int> graph[N]; bool vis[N]; int cnt; void dfs(int u, int p) { dist[u] = low[u] = ++cnt; vis[u] = 1; parity[u] = parity[p] ^ 1; for(int i = 0; i < graph[u].size(); i++) { int v = graph[u][i].fi; if(!vis[v]) { dfs(v, u); bad[u] += bad[v]; low[u] = min(low[u], low[v]); } else { if(parity[v] == parity[u]) { if(dist[v] < dist[u]) { bad[v]--; bad[u]++; badEdge++; } } else low[u] = min(low[u], dist[v]); } } } void bfs(int u, int p) { vis[u] = 1; for(int i = 0; i < graph[u].size(); i++) { int v = graph[u][i]; if(v == p) continue; if(!vis[v]) { bfs(v, u); if(bad[v] == badEdge && low[v] > dist[u]) ans++; } } } int main() { cin.tie(0), ios_base::sync_with_stdio(0); cin >> n >> m; for(int i = 1; i <= m; i++) { int u, v; cin >> u >> v; graph[u].pb(v); graph[v].pb(u); } for(int i = 1; i <= n; i++) { if(!vis[i]) dfs(i, i); } if(badEdge == 1) ans++; memset(vis, 0, sizeof(vis)); for(int i = 1; i <= n; i++) { if(!vis[i]) bfs(i, i); } cout << ans; }

컴파일 시 표준 에러 (stderr) 메시지

voltage.cpp: In function 'void dfs(int, int)':
voltage.cpp:42:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < graph[u].size(); i++) {
                    ~~^~~~~~~~~~~~~~~~~
voltage.cpp:5:12: error: request for member 'first' in 'graph[u].std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int> >::value_type {aka int}'
 #define fi first
            ^
voltage.cpp:43:29: note: in expansion of macro 'fi'
         int v = graph[u][i].fi;
                             ^~
voltage.cpp: In function 'void bfs(int, int)':
voltage.cpp:65:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < graph[u].size(); i++) {
                    ~~^~~~~~~~~~~~~~~~~