Submission #930520

#TimeUsernameProblemLanguageResultExecution timeMemory
930520Jawad_Akbar_JJJoker (BOI20_joker)C++17
14 / 100
2007 ms19024 KiB
#pragma GCC optimize("O2")
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#include <iostream>
#include <vector>

using namespace std;
const int N = (1<<18) + 1;
vector<pair<int,int>> nei[N];
int seen[N],h[N];
int cur = 1,l,r;
bool odd;


void dfs(int u,int k = 1){
	seen[u] = cur;
	h[u] = k;
	for (auto [i,j] : nei[u]){
		if (j <= r and j >= l)
			continue;
		if (seen[i] == cur){
			if ((h[u] - h[i]) % 2 == 0)
				odd = true;
		}
		else
			dfs(i,k+1);
	}
}

void sub1(int n,int m,int q){
	for (int i=1;i<=m;i++){
		int a,b;
		scanf("%d%d",&a,&b);
		nei[a].push_back({b,i});
		nei[b].push_back({a,i});
	}

	while (q--){
		scanf("%d%d",&l,&r);
		odd = false;
		for (int i=1;i<=n;i++)
			if (seen[i]!=cur)
				dfs(i);
		cur++;
		if (odd)
			printf("YES\n");
		else
			printf("NO\n");
	}
	exit(0);
}


signed  main(){
	int n,m,q;
	cin>>n>>m>>q;

	if (min(n,min(m,q)) <= 2000)
		sub1(n,m,q);

	
}

Compilation message (stderr)

Joker.cpp: In function 'void sub1(int, int, int)':
Joker.cpp:33:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |   scanf("%d%d",&a,&b);
      |   ~~~~~^~~~~~~~~~~~~~
Joker.cpp:39:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   39 |   scanf("%d%d",&l,&r);
      |   ~~~~~^~~~~~~~~~~~~~
#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...