1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<map> 6 7 using namespace std; 8 9 int n, a[1005]; 10 11 //建树的 “模板” 12 void up( int son ) 13 { 14 int t = a[son]; 15 int tson = son; 16 while( (tson > 1)&&( a[tson/2] > t)) 17 { 18 a[tson] = a[tson/2]; 19 tson = tson/2; 20 } 21 a[tson] = t; 22 } 23 24 void charu( int t) 25 { 26 a[ ++n ] = t; 27 up( n ); 28 } 29 30 31 int main () 32 { 33 int k, m, x, y;; 34 map <int, int> index; //记录下标 35 string s; 36 cin >> k >> m; 37 n=0; 38 //建树 39 for(int i=0; i<k; i++) 40 { 41 cin >> x; 42 charu(x); 43 } 44 //给map赋值 45 for(int i=1; i<=n; i++) 46 { 47 index[a[i]] = i; 48 } 49 for(int i=0; i<m; i++) 50 { 51 cin >> x; 52 cin >> s; 53 int index_x = index[x]; 54 int index_y; 55 if(s[0] == 'a') 56 { 57 cin >> y; 58 getline(cin, s); //这个函数可以输入一个带空格的字符串 59 index_y = index[y]; 60 if(index_x/2 == index_y/2) 61 puts("T"); 62 else 63 puts("F"); 64 } 65 else 66 { 67 cin >> s; 68 cin >> s; 69 if(s[0] == 'r') 70 { 71 if(index_x == 1) 72 puts("T"); 73 else 74 puts("F"); 75 } 76 else if(s[0] == 'p') 77 { 78 cin >> s; 79 cin >> y; 80 index_y = index[y]; 81 if(index_y/2 == index_x) 82 puts("T"); 83 else 84 puts("F"); 85 86 } 87 else 88 { 89 cin >> s; 90 cin >> y; 91 index_y = index[y]; 92 if(index_x/2 == index_y) 93 puts("T"); 94 else 95 puts("F"); 96 } 97 } 98 } 99 100 return 0; 101 }