Untitled
unknown
plain_text
2 years ago
1.7 kB
3
Indexable
#include <iostream> using namespace std; #define MAX_SIZE 10000 int front = -1, rear = -1; int Ar[MAX_SIZE] = {0}; int cnt[MAX_SIZE] = {0}; class queue{ private: public: void enqueue(int ars, int ra); void dequeue(); void peek(int &ars, int &ra); bool isEmpty(); }; void queue :: enqueue(int ars, int ra) { front++; Ar[front] = ars; cnt[front] = ra; } void queue :: dequeue() { if(!isEmpty()) { rear++; } } bool queue :: isEmpty() { if(rear == front) { return true; } return false; } void queue :: peek(int &ars, int &ra) { ars = Ar[rear + 1]; ra = cnt[rear + 1]; } int arr[101][101]; void reset(int ark[101][101]) { for(int i = 0; i < 101; i++) { for(int j = 0; j < 101; j++) { ark[i][j] = -1; } } } int main() { for(int testcase = 1; testcase <= 10; testcase++) { int N, K; // do dai cua chuoi va diem bat dau cin >> N >> K; front = rear = -1; reset(arr); int ar[101] = {0}; // tao mang danh dau for(int i = 0; i < N / 2; i++) { int x, y; cin >> x >> y; arr[x][y] = 1; } int index = 1; queue qe; qe.enqueue(K, index); int id = 0; int max = 0; while(!qe.isEmpty()) { int temp; qe.peek(temp, index); qe.dequeue(); for(int j = 0; j <= 100; j++) { if(arr[temp][j] == 1 && ar[j] == 0) { qe.enqueue(j, index + 1); ar[j] = index + 1; } } if(id <= index) { id = index; // tim index max } } for(int i = 0; i <= 100; i++) { if(ar[i] == id) { if(max < i) { max = i; } } } cout<<"#"<<testcase<<" "<<max<<endl; } }
Editor is loading...