Решение задачи «A» третьего квалификационного раунда Russian Code Cup (2012 год)


Задача «А». Шоколадка (все задачи третьего квалификационного раунда)

У Игната праздник! И по этому поводу ему подарили шоколадку размером n×n долек. В разгаре веселья он положил эту шоколадку на стол и на время забыл о ней.Вернувшись за ней, он понял, что случилось ужасное! Его шоколадку кто-то сломал!И, мало того, что сломал, так ещё и мог съесть несколько долек. Помогите Игнату выяснить всю правду: ел ли кто-то его шоколадку?

Сломанная шоколадка представляет собой две половинки — левую и правую.Левая половинка выровнена по левому краю, правая — по правому.Каждая половинка состоит из n рядов. В i-м ряду левой половинки li долек, правой — ri долек.Игнат считает, что шоколадку никто не ел, если из левой и правой половинок можно сложить целую шоколадку n×n, не поднимая их со стола и не переворачивая.

Формат входных данных

На вход подается несколько запросов. В первой строке задано число t (1 ≤ t≤ 100) — количество запросов, на которые необходимо ответить.

Далее, каждый в своей строке, заданы сами запросы в формате: сначала n (2 ≤ n ≤ 100) — размер шоколадки, далее n пар чисел: l1 r1, l2 r2, …, lnrn (1 ≤ li, ri < n, li + ri ≤ n), все числа целые.

Формат выходных данных

Для каждого запроса в отдельной строке выведите «yes», если шоколадку кто-то ел, или — «no» в противном случае.

Пример

Входные данные

3
3 2 1 1 2 2 1
3 1 1 1 1 2 1
3 1 1 1 1 1 1

Выходные данные

no
yes
yes

Решение задачи на C#

using System;

class Program
{
  static void Main(string[] args)
  {
    var separator = new Char[]{' '};
    string[] numbers;
    int n;
    int j, l, r;
    int IntactRows;
    string line = Console.ReadLine();
    int t = Convert.ToInt32(line);
    for (int i = 1; i <= t; i++)
    {
      numbers = Console.ReadLine().Split(separator);
      n = Convert.ToInt32(numbers[0]);
      IntactRows = 0;
      for (j = 1; j <= n; j++)
      {
        l = Convert.ToInt32(numbers[j * 2 - 1]);
        r = Convert.ToInt32(numbers[j * 2]);
        if ((l + r) == n)
          IntactRows++;
        else
          break;
      }
      if (IntactRows != n)
        Console.WriteLine("yes");
      else
        Console.WriteLine("no");
    }
  }
}
Реклама
Запись опубликована в рубрике программирование с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s