Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- using ll = long long;
- using ld = long double;
- const int INF = 1e9;
- int color[15][15];
- pair<int,int> q,r,n;
- int ans = 0;
- void rook();
- void queen();
- void knight();
- int main(){
- ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
- string a,b,c;
- cin>>a;
- //1ci str
- if(a[0] == 'Q'){
- int x = (a[1] - 96);
- int y = (a[2] - '0');
- q.first = x;
- q.second = y;
- } else if(a[0] == 'R'){
- int x = (a[1] - 96);
- int y = (a[2] - '0');
- r.first = x;
- r.second = y;
- } else {
- int x = (a[1] - 96);
- int y = (a[2] - '0');
- n.first = x;
- n.second = y;
- }
- cin>>b;
- //2ci str
- if(b[0] == 'Q'){
- int x = (b[1] - 96);
- int y = (b[2] - '0');
- q.first = x;
- q.second = y;
- } else if(b[0] == 'R'){
- int x = (b[1] - 96);
- int y = (b[2] - '0');
- r.first = x;
- r.second = y;
- } else {
- int x = (b[1] - 96);
- int y = (b[2] - '0');
- n.first = x;
- n.second = y;
- }
- cin>>c;
- //3cu str;
- if(c[0] == 'Q'){
- int x = (c[1] - 96);
- int y = (c[2] - '0');
- q.first = x;
- q.second = y;
- } else if(c[0] == 'R'){
- int x = (c[1] - 96);
- int y = (c[2] - '0');
- r.first = x;
- r.second = y;
- } else {
- int x = (c[1] - 96);
- int y = (c[2] - '0');
- n.first = x;
- n.second = y;
- }
- rook();
- knight();
- queen();
- for(int i = 1;i<=8;i++){
- for(int j = 1;j<=8;j++){
- if(color[i][j] == 1){
- ans++;
- }
- }
- }
- cout << ans << "\n";
- return 0;
- }
- void rook(){
- int x,y;
- x = r.first;
- y = r.second;
- while(x <= 8){
- x++;
- if((x == n.first && y == n.second) || (x == q.first && y == q.second)){
- break;
- } else {
- color[x][y] = 1;
- }
- }
- x = r.first;
- y = r.second;
- while(x >= 1){
- x--;
- if((x == n.first && y == n.second) || (x == q.first && y == q.second)){
- break;
- } else {
- color[x][y] = 1;
- }
- }
- x = r.first;
- y = r.second;
- while(y <= 8){
- y++;
- if((x == n.first && y == n.second) || (x == q.first && y == q.second)){
- break;
- } else {
- color[x][y] = 1;
- }
- }
- x = r.first;
- y = r.second;
- while(y >= 1){
- y--;
- if((x == n.first && y == n.second) || (x == q.first && y == q.second)){
- break;
- } else {
- color[x][y] = 1;
- }
- }
- }
- void knight(){
- int x = n.first;
- int y = n.second;
- if(x - 2 >= 1 && y + 1 <= 8 && (x - 2 != q.first && y + 1 != q.second) && (x - 2 != r.first && y + 1 != r.second)){
- color[x-2][y+1] = 1;
- }
- if(x - 2 >= 1 && y - 1 >= 1 && (x - 2 != q.first && y - 1 != q.second) && (x - 2 != r.first && y - 1 != r.second)){
- color[x-2][y-1] = 1;
- }
- if(x - 1 >= 1 && y - 2 >= 1 && (x - 1 != q.first && y - 2 != q.second) && (x - 1 != r.first && y - 2 != r.second)){
- color[x-1][y-2] = 1;
- }
- if(x - 1 >= 1 && y + 2 <= 8 && (x - 1 != q.first && y + 2 != q.second) && (x - 1 != r.first && y + 2 != r.second)){
- color[x-1][y+2] = 1;
- }
- if(x + 1 <= 8 && y - 2 >= 1 && (x + 1 != q.first && y - 2 != q.second) && (x + 1 != r.first && y - 2 != r.second)){
- color[x+1][y-2] = 1;
- }
- if(x + 1 <= 8 && y + 2 <= 8 && (x + 1 != q.first && y + 2 != q.second) && (x + 1 != r.first && y + 2 != r.second)){
- color[x+1][y+2] = 1;
- }
- if(x + 2 <= 8 && y - 1 >= 1 && (x + 2 != q.first && y - 1 != q.second) && (x + 2 != r.first && y - 1 != r.second)){
- color[x+2][y-1] = 1;
- }
- if(x + 2 <= 8 && y + 1 <= 8 && (x + 2 != q.first && y + 1 != q.second) && (x + 2 != r.first && y + 1 != r.second)){
- color[x+2][y+1] = 1;
- }
- }
- void queen(){
- /* Queen - Rook start */
- int x,y;
- x = q.first;
- y = q.second;
- while(x <= 8){
- x++;
- if((x == n.first && y == n.second) || (x == r.first && y == r.second)){
- break;
- } else {
- color[x][y] = 1;
- }
- }
- x = q.first;
- y = q.second;
- while(x >= 1){
- x--;
- if((x == n.first && y == n.second) || (x == r.first && y == r.second)){
- break;
- } else {
- color[x][y] = 1;
- }
- }
- x = q.first;
- y = q.second;
- while(y <= 8){
- y++;
- if((x == n.first && y == n.second) || (x == r.first && y == r.second)){
- break;
- } else {
- color[x][y] = 1;
- }
- }
- x = q.first;
- y = q.second;
- while(y >= 1){
- y--;
- if((x == n.first && y == n.second) || (x == r.first && y == r.second)){
- break;
- } else {
- color[x][y] = 1;
- }
- }
- /* Queen - Rook finish */
- /* Queen - Bishop start */
- x = q.first;
- y = q.second;
- while(x >= 1 && y >= 1){
- x--;
- y--;
- if((x == n.first && y == n.second) || (x == r.first && y == r.second)){
- break;
- } else {
- color[x][y] = 1;
- }
- }
- x = q.first;
- y = q.second;
- while(x <= 8 && y <= 8){
- x++;
- y++;
- if((x == n.first && y == n.second) || (x == r.first && y == r.second)){
- break;
- } else {
- color[x][y] = 1;
- }
- }
- x = q.first;
- y = q.second;
- while(x >= 1 && y <= 8){
- x--;
- y++;
- if((x == n.first && y == n.second) || (x == r.first && y == r.second)){
- break;
- } else {
- color[x][y] = 1;
- }
- }
- x = q.first;
- y = q.second;
- while(x <= 8 && y >= 1){
- x++;
- y--;
- if((x == n.first && y == n.second) || (x == r.first && y == r.second)){
- break;
- } else {
- color[x][y] = 1;
- }
- }
- /* Queen - Bishop finish */
- }
- // Gözüm çıxdı :( --- Nolar 100% ol
Add Comment
Please, Sign In to add comment