# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
722644 | 2023-04-12T13:45:22 Z | gagik_2007 | Joker (BOI20_joker) | C++17 | 136 ms | 41256 KB |
#include <iostream> #include <algorithm> #include <string> #include <vector> #include <cmath> #include <chrono> #include <ctime> #include <set> #include <map> #include <stack> #include <queue> #include <deque> #include <limits> #include <iomanip> #include <unordered_set> #include <unordered_map> #include <fstream> #include <functional> #include <random> #include <cassert> using namespace std; typedef long long ll; typedef long double ld; #define ff first #define ss second struct Query { int ind; int l; int r; ll ans; Query(int _l, int _r, int _ind) :l(_l), r(_r), ind(_ind), ans(0) {} }; struct Edge { int x; int y; Edge(int _x, int _y) :x(_x), y(_y) {} }; ll ttt; const ll INF = 1e18; const ll MOD = 1e9 + 7; const ll N = 200007; const ll LG = 31; ll n, m, k; set<int>g[N]; vector<Query>q; vector<Edge>e; int used[N]; bool dfs(int v) { for (int to : g[v]) { if (used[to] == used[v]) { return true; } else if (!used[to]) { used[to] = 3 - used[v]; dfs(to); } } return false; } bool is_odd_cycle() { for (int i = 1; i <= n; i++) { used[i] = 0; } for (int i = 1; i <= n; i++) { if (!used[i]) { used[i] = 1; if (dfs(i)) { return true; } } } return false; } void remove_edges(const Query& query) { for (int i = query.l; i <= query.r; i++) { g[e[i].x].erase(e[i].y); g[e[i].y].erase(e[i].x); } } void add_edges(const Query& query) { for (int i = query.l; i <= query.r; i++) { g[e[i].x].insert(e[i].y); g[e[i].y].insert(e[i].x); } } bool do_query(const Query& query) { remove_edges(query); bool res = is_odd_cycle(); add_edges(query); return res; } int main() { //freopen("in.txt", "r", stdin); ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m >> k; for (int i = 0; i < m; i++) { int x, y; cin >> x >> y; g[x].insert(y); g[y].insert(x); e.push_back(Edge(x, y)); } bool only1 = true; for (int i = 0; i < k; i++) { int l, r; cin >> l >> r; l--, r--; if (l != 0)only1 = false; q.push_back(Query(l, r, i)); } if (n <= 2000 && m <= 2000 && k <= 2000) { for (int i = 0; i < k; i++) { if (do_query(q[i])) { cout << "YES\n"; } else { cout << "NO\n"; } } } } /// ---- - -------- ------ -------- -- - - - /// Just a reminder. Ubuntu password is I O I /// ---- - -------- ------ -------- -- - - -
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 9684 KB | Output is correct |
2 | Correct | 5 ms | 9684 KB | Output is correct |
3 | Correct | 5 ms | 9664 KB | Output is correct |
4 | Incorrect | 5 ms | 9656 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 9684 KB | Output is correct |
2 | Correct | 5 ms | 9684 KB | Output is correct |
3 | Correct | 5 ms | 9664 KB | Output is correct |
4 | Incorrect | 5 ms | 9656 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 9684 KB | Output is correct |
2 | Correct | 5 ms | 9684 KB | Output is correct |
3 | Incorrect | 136 ms | 41256 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 9684 KB | Output is correct |
2 | Correct | 5 ms | 9684 KB | Output is correct |
3 | Correct | 5 ms | 9664 KB | Output is correct |
4 | Incorrect | 5 ms | 9656 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 9684 KB | Output is correct |
2 | Correct | 5 ms | 9684 KB | Output is correct |
3 | Correct | 5 ms | 9664 KB | Output is correct |
4 | Incorrect | 5 ms | 9656 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 9684 KB | Output is correct |
2 | Correct | 5 ms | 9684 KB | Output is correct |
3 | Correct | 5 ms | 9664 KB | Output is correct |
4 | Incorrect | 5 ms | 9656 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |