ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 2010. Юный гроссмейстер Саша

#wa 20 What's wrong ?
Послано spidey 16 фев 2016 12:30
This is my code

import java.util.*;

public class Task_2010 {
 static void kingStep(int n, int x, int y){
  long countKing = 0;
  if((x - 1) > 0) countKing++;
  if((x - 1) > 0 && y + 1 <= n) countKing++;
  if((y + 1) <= n) countKing++;
  if((x + 1) <= n && (y + 1) <= n) countKing++;
  if((x + 1) <= n) countKing++;
  if((x + 1) <= n && (y - 1) > 0) countKing++;
  if((y - 1) > 0) countKing++;
  if((x - 1) > 0 && (y - 1) > 0) countKing++;
  System.out.println("King: " + countKing);
 }
 static void knightStep(int n, int x, int y){
  long countKnight = 0;
  if((x - 2) > 0 && (y + 1) <= n) countKnight++;
  if((x - 2) > 0 && (y - 1) > 0) countKnight++;
  if((y + 2) <= n && (x - 1) > 0) countKnight++;
  if((y + 2) <= n && (x + 1) <= n) countKnight++;
  if((x + 2) <= n && (x + 1) <= n) countKnight++;
  if((x + 2) <= n && (y - 1) > 0) countKnight++;
  if((y - 2) > 0 && (x + 1) <= n) countKnight++;
  if((y - 2) > 0 && (x - 1) > 0) countKnight++;
  System.out.println("Knight: " + countKnight);
 }
 static long bishopStep(int n, int x, int y) {
  long countBishop = 0;
  int left = x - 1;
  int right = n - x;
  if(y + left <= n){
    countBishop += left;
  } else countBishop += n - y;
  if(y + right <= n){
    countBishop += right;
  } else countBishop += n - y;
  if(y - left > 0){
    countBishop += left;
  } else countBishop += y - 1;
  if(y - right > 0){
    countBishop += right;
  } else countBishop += y - 1;
  System.out.println("Bishop: " + countBishop);
  return countBishop;
 }
 static long rookStep(int n, int x, int y){
  long countRook = (x - 1) + (n - x) + (y - 1) + (n - y);
  System.out.println("Rook: " + countRook);
  return countRook;

 }
 public static void main(String[] args){
  Scanner sc = new Scanner(System.in);
  int n = sc.nextInt();
  int x = sc.nextInt();
  int y = sc.nextInt();

  kingStep(n,x,y);
  knightStep(n,x,y);
  long queen = (bishopStep(n,x,y) + rookStep(n,x,y));
  System.out.println("Queen: " +  queen);

 }
}
Re: #wa 20 What's wrong ?
Послано shadow_monk 27 ноя 2016 17:30
опечатка в knightStep.