#include #include #include #include #include #include using namespace std; tuple minMin(vector> *vectorPtrs) { vector>::iterator vecIter = vectorPtrs->begin(); tuple retVal = vectorPtrs->front(); for (int j=0; jsize(); ++j) { tuple currentTuple = *vecIter; //cerr << "X:" << get<0>(currentTuple) << " Y:" << get<1>(currentTuple) <(currentTuple) < get<0>(retVal)) && (get<1>(currentTuple) < get<1>(retVal))) { retVal = currentTuple; } vecIter++; } return retVal; } tuple maxMax(vector> *vectorPtrs) { vector>::iterator vecIter = vectorPtrs->begin(); tuple retVal = vectorPtrs->front(); for (int j=0; jsize(); ++j) { tuple currentTuple = *vecIter; //cerr << "X:" << get<0>(currentTuple) << " Y:" << get<1>(currentTuple) <(currentTuple) > get<0>(retVal)) && (get<1>(currentTuple) > get<1>(retVal))) { retVal = currentTuple; } vecIter++; } return retVal; } tuple minMax(vector> *vectorPtrs) { vector>::iterator vecIter = vectorPtrs->begin(); tuple retVal = vectorPtrs->front(); for (int j=0; jsize(); ++j) { tuple currentTuple = *vecIter; //cerr << "X:" << get<0>(currentTuple) << " Y:" << get<1>(currentTuple) <(currentTuple) < get<0>(retVal)) && (get<1>(currentTuple) > get<1>(retVal))) { retVal = currentTuple; } vecIter++; } return retVal; } tuple maxMin(vector> *vectorPtrs) { vector>::iterator vecIter = vectorPtrs->begin(); tuple retVal = vectorPtrs->front(); for (int j=0; jsize(); ++j) { tuple currentTuple = *vecIter; //cerr << "X:" << get<0>(currentTuple) << " Y:" << get<1>(currentTuple) <(currentTuple) > get<0>(retVal)) && (get<1>(currentTuple) < get<1>(retVal))) { retVal = currentTuple; } vecIter++; } return retVal; } int main() { /* Enter your code here. Read input from STDIN. Print output to STDOUT */ int queryCount = 0; cin >> queryCount; for(int i=0; i> pointCount; if(pointCount<2) { cout << "NO" < minXY(NOT_SET,NOT_SET); tuple minXmaxY (NOT_SET,NOT_SET); tuple minYmaxX (NOT_SET,NOT_SET); tuple maxXmaxY (NOT_SET,NOT_SET); */ vector> *vectorPoints = new vector>(); for (int j=0; j> x; cin >> y; //tuple *myTuple = new tuple(x,y) ; tuple myTuple(x,y); cerr << "X:" << get<0>(myTuple) << " Y:" << get<1>(myTuple) <push_back(myTuple); } /* vector>::iterator vecIter = vectorPoints->begin(); for (int j=0; j curentTuple = *vecIter; if( curentTuple) vecIter++; }*/ // cerr << "size:" << vectorPoints->size() << endl; tuple minXminY= minMin(vectorPoints); tuple minXmaxY = minMax(vectorPoints); tuple minYmaxX = maxMin(vectorPoints); tuple maxXmaxY = maxMax(vectorPoints); // if duplicate, add a new point for the missing corner. vector>::iterator vecIter = vectorPoints->begin(); for (int j=0; j currentTuple = *vecIter++; if(( get<0>(currentTuple) == get<0>(minXminY) ) || ( get<0>(currentTuple) == get<0>(maxXmaxY) ) ) { //on the X lines. Let's make sure it's not outside. if((get<1>(currentTuple) >= get<1>(minXminY) ) || ( get<1>(currentTuple) <= get<1>(maxXmaxY) )) { cerr << "On X axis "; cerr << "X:" << get<0>(currentTuple) << " Y:" << get<1>(currentTuple) <(currentTuple) == get<1>(minXminY) ) || ( get<1>(currentTuple) == get<1>(maxXmaxY) ) ) { //on the Y lines. Let's make sure it's not outside. cerr << "On Y axis "; cerr << "X:" << get<0>(currentTuple) << " Y:" << get<1>(currentTuple) <(currentTuple) >= get<0>(minXminY) ) || ( get<0>(currentTuple) <= get<0>(maxXmaxY) )) {continue;} } else{ cerr << "not found!!"; cerr << "X:" << get<0>(currentTuple) << " Y:" << get<1>(currentTuple) < currentTuple = maxMax(vectorPoints); cout << "HELO" <(currentTuple) << " Y:" << get<1>(currentTuple) <