| 1234567891011121314151617181920212223242526 |
- #include <iostream>
- #include <queue>
- #include <utility>
- #include <vector>
- using namespace std;
- int main() {
- ios::sync_with_stdio(false);
- cin.tie(nullptr);
- int n, m; cin >> n >> m;
- vector<pair<int, int>> edges(m); vector<vector<int>> g(n);
- for (auto &[u, v] : edges) {
- cin >> u >> v; --u; --v; g[u].push_back(v); g[v].push_back(u);
- }
- vector<int> color(n, -1); queue<int> q; color[0] = 0; q.push(0);
- while (!q.empty()) {
- int u = q.front(); q.pop();
- for (int v : g[u]) {
- if (color[v] == -1) color[v] = color[u] ^ 1, q.push(v);
- else if (color[v] == color[u]) { cout << "NO\n"; return 0; }
- }
- }
- cout << "YES\n";
- for (auto [u, v] : edges) cout << (color[u] == 0 ? '0' : '1');
- cout << '\n';
- }
|