#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
vector< vector< int >> queensAttacktheKing( vector< vector< int >> & Q, vector< int > & K) {
int dx, i;
int x;
int y;
int mp[ 8 ] [ 8 ] = { } ;
vector< vector< int >> res;
for ( i= ( 0 ) ; i< ( Q.size ( ) ) ; i++ ) {
mp[ Q[ i] [ 0 ] ] [ Q[ i] [ 1 ] ] = 1 ;
}
for ( dx= ( - 1 ) ; dx< ( 2 ) ; dx++ ) {
int dy;
for ( dy= ( - 1 ) ; dy< ( 2 ) ; dy++ ) {
if ( dx || dy) {
x = K[ 0 ] ;
y = K[ 1 ] ;
for ( ;; ) {
x + = dx;
y + = dy;
if ( x < 0 || x >= 8 || y < 0 || y >= 8 ) {
break ;
}
if ( mp[ x] [ y] ) {
res.push_back ( { x,y} ) ;
break ;
}
}
}
}
}
return res;
}
}
;
// cLay varsion 20191102-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// vector<vector<int>> queensAttacktheKing(vector<vector<int>>& Q, vector<int>& K) {
// int x, y;
// int mp[8][8] = {};
// vector<vector<int>> res;
// rep(i,Q.size()) mp[Q[i][0]][Q[i][1]] = 1;
//
// rep(dx,-1,2) rep(dy,-1,2) if(dx || dy){
// x = K[0];
// y = K[1];
// for(;;){
// x += dx;
// y += dy;
// if(x < 0 || x >= 8 || y < 0 || y >= 8) break;
// if(mp[x][y]) res.push_back({x,y}), break;
// }
// }
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KY2xhc3MgU29sdXRpb257CiAgcHVibGljOgogIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gcXVlZW5zQXR0YWNrdGhlS2luZyh2ZWN0b3I8dmVjdG9yPGludD4+JiBRLCB2ZWN0b3I8aW50PiYgSyl7CiAgICBpbnQgZHgsIGk7CiAgICBpbnQgeDsKICAgIGludCB5OwogICAgaW50IG1wWzhdWzhdID0ge307CiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IHJlczsKICAgIGZvcihpPSgwKTtpPChRLnNpemUoKSk7aSsrKXsKICAgICAgbXBbUVtpXVswXV1bUVtpXVsxXV0gPSAxOwogICAgfQogICAgZm9yKGR4PSgtMSk7ZHg8KDIpO2R4KyspewogICAgICBpbnQgZHk7CiAgICAgIGZvcihkeT0oLTEpO2R5PCgyKTtkeSsrKXsKICAgICAgICBpZihkeCB8fCBkeSl7CiAgICAgICAgICB4ID0gS1swXTsKICAgICAgICAgIHkgPSBLWzFdOwogICAgICAgICAgZm9yKDs7KXsKICAgICAgICAgICAgeCArPSBkeDsKICAgICAgICAgICAgeSArPSBkeTsKICAgICAgICAgICAgaWYoeCA8IDAgfHwgeCA+PSA4IHx8IHkgPCAwIHx8IHkgPj0gOCl7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYobXBbeF1beV0pewogICAgICAgICAgICAgIHJlcy5wdXNoX2JhY2soe3gseX0pOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gcmVzOwogIH0KfQo7Ci8vIGNMYXkgdmFyc2lvbiAyMDE5MTEwMi0xCgovLyAtLS0gb3JpZ2luYWwgY29kZSAtLS0KLy8gI2RlZmluZSBtYWluIGR1bW15X21haW4KLy8ge30KLy8gI3VuZGVmIG1haW4KLy8gCi8vIGNsYXNzIFNvbHV0aW9uIHsKLy8gcHVibGljOgovLyAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gcXVlZW5zQXR0YWNrdGhlS2luZyh2ZWN0b3I8dmVjdG9yPGludD4+JiBRLCB2ZWN0b3I8aW50PiYgSykgewovLyAgICAgaW50IHgsIHk7Ci8vICAgICBpbnQgbXBbOF1bOF0gPSB7fTsKLy8gICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gcmVzOwovLyAgICAgcmVwKGksUS5zaXplKCkpIG1wW1FbaV1bMF1dW1FbaV1bMV1dID0gMTsKLy8gCi8vICAgICByZXAoZHgsLTEsMikgcmVwKGR5LC0xLDIpIGlmKGR4IHx8IGR5KXsKLy8gICAgICAgeCA9IEtbMF07Ci8vICAgICAgIHkgPSBLWzFdOwovLyAgICAgICBmb3IoOzspewovLyAgICAgICAgIHggKz0gZHg7Ci8vICAgICAgICAgeSArPSBkeTsKLy8gICAgICAgICBpZih4IDwgMCB8fCB4ID49IDggfHwgeSA8IDAgfHwgeSA+PSA4KSBicmVhazsKLy8gICAgICAgICBpZihtcFt4XVt5XSkgcmVzLnB1c2hfYmFjayh7eCx5fSksIGJyZWFrOwovLyAgICAgICB9Ci8vICAgICB9Ci8vICAgICByZXR1cm4gcmVzOwovLyAgIH0KLy8gfTsK