제출 #1151570

#제출 시각아이디문제언어결과실행 시간메모리
1151570Robert_juniorJoker (BOI20_joker)C++20
0 / 100
979 ms42660 KiB
#include<bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() #define ins insert #define pb push_back #define F first #define S second const int N = 2e5+100, M = 5e5 + 7; const int mod = 1e9 + 7; int pr[N], sz[N], f[N], l[N], r[N], ql[N], qr[N]; bool res[201][N], ans; int get(int v){ if(pr[v] == v) return v; else return get(pr[v]); } int get1(int v){ if(pr[v] == v) return f[v]; else return (get1(pr[v]) ^ f[v]); } void unite(int u, int v){ int a = get(u), b = get(v); int f1 = get1(u), f2 = (get1(v)); if(a == b){ if(f1 == f2) ans = 1; } else{ if(sz[a] < sz[b]){ swap(a, b); } sz[a] += sz[b]; pr[b] = a; sz[b] = 0; if(f1 == f2) f[b] ^= 1; } } void solve(){ int n, m, q; cin>>n>>m>>q; for(int i = 1; i <= m; i++){ cin>>l[i]>>r[i]; } for(int i = 1; i <= min(200, m); i++){ for(int j = 1; j <= n; j++){ sz[j] = 1; pr[j] = j; f[j] = 0; } ans = 0; for(int j = i - 1; j >= 1; j--){ unite(l[j], r[j]); } for(int j = m; j > i; j--){ if(ans){ res[i][j] = 1; continue; } unite(l[j], r[j]); } } for(int i = 1; i <= q; i++){ cin>>ql[i]>>qr[i]; if(ql[i] <= 200){ if(res[ql[i]][qr[i]]){ cout<<"YES\n"; } else{ cout<<"NO\n"; } } } } main(){ ios_base :: sync_with_stdio(false); cin.tie(nullptr); int t = 1; //cin>>t; for(int i = 1; i <= t; i++){ //cout<<"Case "<<i<<": "; solve(); } }

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

Joker.cpp:72:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   72 | main(){
      | ^~~~
#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...