Untitled
unknown
plain_text
2 years ago
1.6 kB
6
Indexable
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for (int t = 1; t <= 10; t++) {
int N = sc.nextInt();
int start = sc.nextInt() - 1;
Queue inQueue = new Queue(N);
int[][] preMatrix = new int[N][N];
for (int i = 0; i < N; i += 2) {
int s = sc.nextInt();
int e = sc.nextInt();
inQueue.push(s);
inQueue.push(e);
preMatrix[s][e] = 1;
}
Queue queue = new Queue(1000);
boolean visited[] = new boolean[N];
queue.push(inQueue.valueOf(start));
int max = 0;
while (!queue.empty()) {
max = 0;
for (int i = 0; i < queue.length(); i++) {
int x = queue.pop();
if (x > max ) {
max = x;
}
;
visited[x] = true;
for (int j = 0; j < N; j++) {
if (preMatrix[x][j] == 1 && !visited[j]) {
queue.push(j);
}
}
}
}
System.out.println(max);
}
sc.close();
}
}
class Queue {
private int front, rear, capacity;
private int queue[];
Queue(int c) {
front = rear = 0;
capacity = c;
queue = new int[capacity];
};
void push(int data) {
queue[rear] = data;
rear++;
};
int pop() {
int res = queue[front];
for(int i=0; i<rear-1;i++) {
queue[i] = queue[i+1];
}
rear--;
return res;
};
void reset() {
front = rear = 0;
};
boolean empty() {
return front == rear;
};
int valueOf(int index) {
return queue[index];
};
int length() {
return rear - front;
};
}
Editor is loading...