제출 #914288

#제출 시각아이디문제언어결과실행 시간메모리
9142883as8Joker (BOI20_joker)C++14
39 / 100
1696 ms24932 KiB
#include <bits/stdc++.h> #define ll long long #define endl "\n" #define fastIO cin.tie(nullptr); cout.tie(nullptr); ios::sync_with_stdio(false); #define mid ((l + r) / 2) #define lChild ((index * 2) + 1) #define rChild ((index * 2) + 2) using namespace std; struct node { ll u, i; }; bool bi(vector<vector<node> >& graph, vector<ll>& color, ll startIndex, ll p, ll col, ll l, ll r) { color[startIndex] = col; ll ret = true; for(auto [el, i] : graph[startIndex]) { if(el == p || (l <= i && i <= r)) continue; if(color[el] == -1) ret &= bi(graph, color, el, startIndex, !col, l, r); if(color[el] != -1 && color[el] == col) return false; if(color[el] != col) continue; } return ret; } bool check(vector<vector<node> >& graph, ll i, ll l = 0) { ll n = graph.size(); vector<ll> col(n, -1); ll ans = true; for(int j = 0; j < n; j++) { if(col[j] != -1) continue; ans &= bi(graph, col, j, -1, 0, l, i); } return !ans; } void solve(ll _) { ll n, m, q; cin>>n>>m>>q; vector<vector<node> > graph(n); for(int i = 0; i < m; i++) { ll x, y; cin>>x>>y; x--; y--; graph[x].push_back({y, i}); graph[y].push_back({x, i}); } ll l = 0, r = m - 1; while(l < r) { bool ckB = check(graph, mid - 1), ck = check(graph, mid), ckA = check(graph, mid + 1); /* if(mid - 1 < 0) { l = r = 0; break; } if(mid + 1 >= m) { l = r = m - 1; break; }*/ if(ckB != ckA) { l = r = mid; break; } //cout<<mid<<": => "<<ck<<endl; if(!ck) { r = mid - 1; } else { l = mid + 1; } } bool is = check(graph, l); ll x = l; // cout<<" => "<<l<<" "<<r<<endl; for(int i = 0; i < q; i++) { ll l, r; cin>>l>>r; l--; r--; //l = 0, r = min(q - 1, (ll)i); if(n <= 2050 && q <= 2050) { cout<<(check(graph, r, l) ? "YES" : "NO")<<endl; continue; } if( x < r) cout<<"NO"<<endl; else if(r < x) cout<<"YES"<<endl; else { cout<<(is ? "YES" : "NO")<<endl; } } } int main() { //fastIO //freopen("file.in", "r", stdin); //freopen("file.out", "w", stdout); ll t = 0; solve(t); }

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

Joker.cpp: In function 'bool bi(std::vector<std::vector<node> >&, std::vector<long long int>&, long long int, long long int, long long int, long long int, long long int)':
Joker.cpp:22:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   22 |     for(auto [el, i] : graph[startIndex]) {
      |              ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...