Submission #577885

#TimeUsernameProblemLanguageResultExecution timeMemory
577885IvanJEvent Hopping (BOI22_events)C++17
10 / 100
1581 ms30360 KiB
#include<bits/stdc++.h>

#define pb push_back

using namespace std;

const int maxn = 5e3 + 5;

int n, q, pot = 1;
vector<int> adj[maxn];
int L[maxn], R[maxn];

int main() {
	scanf("%d%d", &n, &q);
	for(int i = 0;i < n;i++) 
		scanf("%d%d", L + i, R + i);
	
	for(int i = 0;i < n;i++) 
		for(int j = 0;j < n;j++)
			if(i != j && L[j] <= R[i] && R[i] <= R[j])
				adj[i].pb(j);
	
	for(int i = 0;i < q;i++) {
		int x, y;
		scanf("%d%d", &x, &y);
		x--, y--;
		vector<int> d(n, n);
		queue<int> q;
		q.push(x), d[x] = 0;
		while(q.size()) {
			x = q.front();q.pop();
			if(x == y) break;
			for(int xi : adj[x]) {
				if(d[xi] != n) continue;
				d[xi] = d[x] + 1;
				q.push(xi);	
			}	
		}
		
		if(d[y] == n) printf("impossible\n");
		else printf("%d\n", d[y]);
	}
	return 0;	
}

Compilation message (stderr)

events.cpp: In function 'int main()':
events.cpp:14:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |  scanf("%d%d", &n, &q);
      |  ~~~~~^~~~~~~~~~~~~~~~
events.cpp:16:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   16 |   scanf("%d%d", L + i, R + i);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
events.cpp:25:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |   scanf("%d%d", &x, &y);
      |   ~~~~~^~~~~~~~~~~~~~~~
#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...