#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include ///////// #define REP(i, x, n) for(int i = x; i < n; i++) #define rep(i,n) REP(i,0,n) #define P(p) cout<<(p)< ///////// typedef long long LL; typedef long double LD; ///////// using namespace::std; ///////// int N; const int INFTY = (int)1e9+1; vector A(510); vector L(500); vector R(500); bool check(int A,int B){ // <= if( A != INFTY && B == INFTY ){ return true; }else if( A == INFTY && B != INFTY ){ return false; }else if( A== INFTY && B == INFTY ){ return true; } cout << "? " << A << " " << B; for(int i=1;i> str; for(int i=1;i> sub; } if( str == "<" || str == "=" ){ return true; }else{ return false; } return false; } void merge(int left,int mid,int right){ int n1 = mid - left; int n2 = right - mid; for(int i=0;i> N; A.resize(N); rep(i,N){ A[i] = i+1; } mergeSort(0,N); cout << "!"; for(int i=0;i