Блог пользователя KADR

Автор KADR, 14 лет назад, По-русски
Всем привет!

В пятницу, 9 декабря в 19:00 MSK состоится Codeforces Beta Round #97, автором которого являюсь я. Это мой второй полноценный раунд на Codeforces и надеюсь, что не последний :)

Спасибо maksay, Shtrix, it4.kp, RAD и Delinur за помощь в подготовке раунда, тестировании задач и переводе условий.

Удачи на раунде!

UPD: По техническим причинам раунд переносится на 5 минут вперед.

UPD 2: По причине большого числа участников и большого количества тестов, результаты появятся не скоро.

UPD 3: Тестирование завершено, результаты известны. Всем спасибо за участие! Приношу свои извинения за настолько длительное тестирование.

Победители:

Div 1
4. Shef
7. ania
9. NALP

Div 2

UPD 4: Опубликован разбор.
  • Проголосовать: нравится
  • +237
  • Проголосовать: не нравится

14 лет назад, скрыть # |
 
Проголосовать: нравится +7 Проголосовать: не нравится
Жду интересной задачи на структуры данных)
14 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +11 Проголосовать: не нравится

Ждёмс с нетерпением!

Спасибо авторам контеста!

14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Желаю всем удачи. :)
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Желаю всем удачного взлома!
14 лет назад, скрыть # |
 
Проголосовать: нравится +18 Проголосовать: не нравится
Уф, ну наконец-то достойное развлечение! А то за неделю прошедшую с 96 раунда люди уже от скуки и выборы устроили, и митинги и даже подумывают о том чтоб начать готовиться к новогодним корпоративам! %)
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
С удовольствием поучаствую) Желаю всем удачи :)
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
Быстрее бы 100 раунд =D как ни как круглая дата )
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Сколько задач? Разбалловка стандартная?
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Thanks for your hardwork.

By the way, anyone can explain me what is "classical Codeforces round" means?
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Apparently, I accidentally registered twice...
14 лет назад, скрыть # |
 
Проголосовать: нравится +10 Проголосовать: не нравится
В связи с изменением формата страниц Codeforces прошу обновить CHelper до последней версии

---

Due to format of Codeforces pages change please update CHelper to the latest version
14 лет назад, скрыть # |
 
Проголосовать: нравится -12 Проголосовать: не нравится
It would be very good if someone will make the round at 31 December , something different and interesting ...
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Подскажите плиз, внеконкурсную регистрацию во втором дивизионе совсем отменили или как-то по особому нужно это делать? Если просто кликаю на "Зарегистрироваться", получаю:
Рейтинг должен быть от 0 до 1,699 для возможности регистрации на это соревнование
14 лет назад, скрыть # |
 
Проголосовать: нравится -17 Проголосовать: не нравится
У ErzhanDS сегодня день рождения!!!
14 лет назад, скрыть # |
 
Проголосовать: нравится +19 Проголосовать: не нравится
Давайте ещё перенос на 5 минут... я зарегаюсь)))
14 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

Извините, не прочитал сообщение на главной.

14 лет назад, скрыть # |
 
Проголосовать: нравится -9 Проголосовать: не нравится
Кто-то может помочь разобраться с условием задачи С 2го дивизиона и объяснить, что в ней требуется найти?
  • 14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +2 Проголосовать: не нравится
    А какая часть условия могла вызвать затруднения в понимании?
    • 14 лет назад, скрыть # ^ |
      Rev. 2  
      Проголосовать: нравится 0 Проголосовать: не нравится

      Массив при вводе был уже отсортирован, или его надо было сортировать?

      Я не сортировал, навеорное надо было. На 6 претесте провалилась. В чем причина не  мог понять.

      • 14 лет назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится
        Стоило перечитать условие.
        • 14 лет назад, скрыть # ^ |
           
          Проголосовать: нравится +1 Проголосовать: не нравится

          Тесты в условии сбили столку(хоть бы один был не отсортирован). С условия не мог понять на вводе массив подаренный мамой или уже отсортированный с замененым числом. 

          • 14 лет назад, скрыть # ^ |
             
            Проголосовать: нравится 0 Проголосовать: не нравится
            Надо было отсортировать но по другому.
            Первый массив a вводишь а в массив b заносиш эти элементы
            Потом сортиш массив b qSortом.
            И выводиш от 2 элемента до n do write(b[i-1]);
            там есть 1 случай когда все n элементов единицы тогда выводи
            for i:=1 to n-1 do write(1,' ');
            writeln(2);
          • 14 лет назад, скрыть # ^ |
             
            Проголосовать: нравится 0 Проголосовать: не нравится
            вот мой код
            var
             a,b:array[0..1000000]of longint;
             z,i,n:longint;
            procedure qSort(l,r:longint);
            var i,j,m,p:longint;
            begin
             i:=l;
             j:=r;
             m:=b[l+random(r-l+1)];
             repeat
              while b[i]<m do inc(i);
              while b[j]>m do dec(j);
              if i>j then break;
              p:=b[i];
              b[i]:=b[j];
              b[j]:=p;
              inc(i);
              dec(j);
             until i>j;
             if i<r then qSort(i,r);
             if l<j then qSort(l,j);
            end;
            begin
             readln(n);
             z:=0;
             for i:=1 to n do
             begin
              read(a[i]);
              b[i]:=a[i];
              if a[i]=1 then inc(z);
             end;
             qSort(1,n);
             if (z=n) then
             begin
              for i:=1 to n-1 do write('1 ');
              write(2);
              halt;
             end;
             write(1,' ');
             for i:=2 to n do write(b[i-1],' ');
            end.
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
обалдеть блин.. по задаче B одинаковый код на fpc проходит а на delphi неправильный ответ на 3 претесте
14 лет назад, скрыть # |
Rev. 3  
Проголосовать: нравится +20 Проголосовать: не нравится

Личное спасибо от меня автору задач (он же автор задач на Всеукраинских олимпиадах) Ярославу Твердохлебу за интересную подборку задач на контест.
В виде благодарности принимайте в ряды решателей троих новых решателей-девятиклассников (они после сегодняшней своей городской олимпиады загорелись желанием что-то решить и здесь). :)
Удачи всем: и автору и всем решателям.

14 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
Спасибо за классные задачи, интресно было их решать) 
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
Задачи B и C в div 2 можно было бы местами поменять имхо, хотя посмотрим, как пройдет системное тестирование.
Вообще задачи понравились, особенно D.
14 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +1 Проголосовать: не нравится

Еще бы претесты чуть послабже и было бы мясо)


Спасибо за контест!

14 лет назад, скрыть # |
 
Проголосовать: нравится +7 Проголосовать: не нравится
funny, I could challenge one solution with Anti QuickSort, be carefull next time!
14 лет назад, скрыть # |
 
Проголосовать: нравится +11 Проголосовать: не нравится
Огромное спасибо ltaravilse, взломавшему мою B за 10 минут до конца! И что бы я без него делал)
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
как С решалась?=(
  • 14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +8 Проголосовать: не нравится
    Стратегия кажись такая:
    Первый игрок убирает единицы с начала, а потом нули с конца, второй игрок действует наоборот.

    Достаточно рассмотреть несколько случаев: ставим вместо вопросов одни нули - возможно получится 00. Ставим одни единицы - возможно 11. Ставим так чтобы половина нулей, половина единиц, причем нули сначала - это под 01, нули с конца - под 10. В каждом из четырех случаев можно симулировать игру и посмотреть что выйдет.
  • 14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +10 Проголосовать: не нравится
    Можно все просчитать без симуляции.

    00 может получиться, если количество 1 <= ходам Маши.
    1 может получиться, если количество 1 + количество ? >= ходам Маши + 2.

    01/10 может получиться, если количество 1 + количество ? хотя бы на один больше ходов Маши, но при этом количество уже присутствующих 1 не превышает количество ходов Маши на 2 или больше (иначе только 11 возможно).
    Дальше для 01/10 можно смотреть по последней цифре.
    Если 0 (или ?, который можно превратить в 0, не сводя к 00) - 10.
    Если 1 (или ?, который можно превратить в 1, не сводя к 11) - 01.

    tm = (len(s) - 2) / 2 + len(s) % 2

    if n1 <= tm:
    print "00"

    if n1 + np >= tm + 1 and not (n1 >= tm + 2):
    if (s[-1] == "1") or (s[-1] == "?" and not (n1 + 1 >= tm + 2)):
    print "01"
    if (s[-1] == "0") or (s[-1] == "?" and not (n1 + np - 1 <= tm)):
    print "10"

    if n1 + np >= tm + 2:
    print "11"

    Полное решение.
14 лет назад, скрыть # |
 
Проголосовать: нравится +29 Проголосовать: не нравится
Самый ужасный контест, который я писал на сodeforces. В первых четырёх задачах первого дива абсолютно не надо думать, зато надо разбирать случаи, просто отвратительно.
14 лет назад, скрыть # |
 
Проголосовать: нравится +11 Проголосовать: не нравится
I hope that today system testing will be fast...
14 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
Great contest! Questions was so interesting! Thanks Codeforces that cause me to advance a lot in algorithms!
14 лет назад, скрыть # |
 
Проголосовать: нравится +13 Проголосовать: не нравится
Как решить задачу A ЗА ДВЕ МИНУТЫ ?!
14 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +25 Проголосовать: не нравится

Мне одному кажется что тут сидит 4 гоблина и минусуют просто всех?

14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
А в претестах ведь был тест из одних единиц?
Лучше бы не было, я вот сразу перед сабмитом поднял такой тест.
  • 14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +1 Проголосовать: не нравится
    Я вовремя-то успел СТОП в браузере нажать после клика на сабмит файла, когда понял, что ВОТ ОНО 1 1 1 =D
  • 14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Да, такой тест, видимо, был, т.к. многие упали на претесте 5, при этом при взломах я не нашел ни одного решения с такой ошибкой.
14 лет назад, скрыть # |
 
Проголосовать: нравится +13 Проголосовать: не нравится
А когда начнут проверять? Раз уж "По причине большого числа участников и большого количества тестов, результаты появятся не скоро.", почему бы уже не начать?
  • 14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +2 Проголосовать: не нравится
    Теневое тестирование идет во время контеста и перед запуском основного системного. Так что не переживайте, инвокеры работают без остановки!
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
I am baffled, and I tried for ages to figure out why my B.cpp kept failing the very first pretest.

http://pastebin.com/Jpa6M6DX

Things like the paralel and area check I added after trying many things. Initially I only had distance and perpendicular checks. I noted that Romka passed system tests using only distance and perpendicular checks, and his method to check if there is a right angle is equivalent to mine. So, really any help is appreciated.
14 лет назад, скрыть # |
 
Проголосовать: нравится +22 Проголосовать: не нравится
Поддерживаю написавшего про разбор случаев. Четыре задачи, где в каждой либо есть какой-то corner-case, либо она сама решается только разбором случаев - это перебор. Особенно в четвертой это напрягло. 
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
Началась проверка. Ждём =)
14 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +3 Проголосовать: не нравится
div1.C, when the digits on the cards got blurred, do the players know the
digits? How do they make their decisions?
14 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
Very nice problem set, thank you for this competition! :)
14 лет назад, скрыть # |
Rev. 5  
Проголосовать: нравится -8 Проголосовать: не нравится

Было бы обидно, если бы решения с голым qsort в C прошли финальные тесты)

Надеюсь, они все упадут,  мвахахах!

14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
А как скоро разборы будут?
14 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
Сто тестов на А - не лучшая идея... Хотя несколько ТЛ было на последних, там антиквиксорт? 
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Tottally off-topic but I don't know where to ask. What is the contribution in CodeForces?
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
We have been waiting 1 hour for less than 20% done of the system test! :(
14 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
one of the finest set in code forces.......thanks to KADR......... :)
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
А каким образом влияет кол-во раз после которых удалось отправить задачу с полным решением на очки за данную задачу?
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
As the codes are tested in the same order they are submitted, don't you think it may be a good idea to show the time when the last tested code was submited during the system tests?
14 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится
Was this was really necessary to make 100+ test cases? If you only keep tricky cases then may be 50> case could be enough for testing and will take smaller system testing time :-|
14 лет назад, скрыть # |
 
Проголосовать: нравится +15 Проголосовать: не нравится
It would have been better to include the cycle
11
11
in Div1-D sample tests.
Many didn't pass the pretests because of this.
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Меня почему-то дико пугают ВА 200+ на задачу В :о
14 лет назад, скрыть # |
 
Проголосовать: нравится +6 Проголосовать: не нравится
I just saw the solution to Problem B Div 2, Lolz, my solution to the problem is so crappy !! I can't believe it didn't strike me. Well, you always learn something new here. :)
14 лет назад, скрыть # |
 
Проголосовать: нравится +27 Проголосовать: не нравится
Вы уж простите, но настолько медленное тестирование - это уже слишком.
  • 14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +24 Проголосовать: не нравится
    Да, в самом деле результаты появляются медленно. С другой стороны система обрабатывает ~100 тестов в секунду. В любом случае к следующему раунду внедрим очередную оптимизацию, надеюсь, получится значительно ускорить процесс.
14 лет назад, скрыть # |
 
Проголосовать: нравится +18 Проголосовать: не нравится
too slow system test :(
14 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
Now around 2 hours waiting and only less than 50% done of the system test! :\
14 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится
f5 after f5, tired :(
14 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
Вот объясните мне пожалуйста, зачем делать столько тестов? Почему нельзя просто сделать 30-40 нормальных? ~220 по B, ~100 по С. Зачем?! В итоге после 2 часов тестирования проверено около 50%.
14 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
атас, ВА219 %)
14 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
Завел будильник на 02.30, надеюсь сис тесты завершатся...
14 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

Ребят, помогите увидеть где меня ломанули в В. Я слепой не вижу.

  • 14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +5 Проголосовать: не нравится
    Элементарно, Ватсон. Вот контрпример:
    0 1
    1 1
    0 0
    1 0
    0 5
    0 6
    0 7
    0 8

    Ваша программа выдаёт "YES 1 2 3 4 5 6 7 8", хотя очевидно, что точки 5 6 7 8 лежат на одной линии и не могут быть прямоугольником :)
    • 14 лет назад, скрыть # ^ |
       
      Проголосовать: нравится -7 Проголосовать: не нравится
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие
      Я буду читать условие

    • 14 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
      Спасибо за тест!
      У меня с этим тестом всё ОК, надеюсь, что остальные 200+ пройдёт так же)
14 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится
установлен абсолютный рекорд codeforces по времени тестирования =(
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Уфф D-шка (див 2) ацептед =) Интересно, кто-нибудь ещё использовал в этой задаче выпуклую оболочку?) Ведь она сразу решает половину проблем, остаётся лишь проверить углы и длины противоположных сторон :)
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
At last! :)
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
кто нибудь знает в чем прикол 96-го теста по В?
14 лет назад, скрыть # |
 
Проголосовать: нравится -6 Проголосовать: не нравится
Пока ловил

Service Temporarily Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.


Apache/2.2.21 (Fedora) Server at codeforces.ru Port 80

или

Oops! Google Chrome could not connect to codeforces.ru

Try reloading: codeforces.­ru



возник вопросец: а не горит ли желанием ВК предоставить скажем часть своих серверов под КФ для благих целей-то? а?

  • 14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Здесь спорный вопрос, так как это происходит только один раз в неделю, при том не всегда(когда only div 2, такое редко случается), а сегодня как раз стечение обстоятельств, много участников и всем интересны результаты.
14 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
Несмотря на то, что в задаче B было 200 с гаком тестов, мое не совсем верное решение прошло. Я написал решение с масками и проверял лишь 2 противоположных угла на 90 градусов. Это не совсем верно, надо проверять все углы. Вот тест, который придумал AlexanderBolshakov :
0 0
0 100
75 0
96 72
1 1
1 2
2 1
2 2

У первого 4-х угольника есть 2 противоположных угла по 90 градусов, но он не является прямоугольником. Правильный ответ здесь NO, а мое решение выдает YES

  • 14 лет назад, скрыть # ^ |
    Rev. 2  
    Проголосовать: нравится -10 Проголосовать: не нравится

    Это где же у него 2 противоположных по 90 градусов? Курс геометрии подсказывает, что если два противоположных по 90 градусов, то это и есть прямоугольник...

    UPD: да, действительно плохо, больше не буду умничать

14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
а я Д перестановками сделал =)

перебирал все перестановки и проверял первые четыре точки на квадрат а остальное на прямоугольник
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
Great contest, I really enjoy, thanks to all whose work makes it possible  that this site is.
14 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

Подскажите, а хоть кто-то уложился на C# в задаче "Замена" (задача А в 1 диве) в лимит по времени?

14 лет назад, скрыть # |
 
Проголосовать: нравится +21 Проголосовать: не нравится
Офигеть, моей проге в D не хватило 32 мегабайта стека, поставил 64 и прошла :( А цена - победа на соревновании...
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
меня взломали на задаче С(2 div), вбив n=100000 чисел, хотя по условию n<10^5. это нормально?
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
I think Petya is the person who enjoyed the contest most. He received a lot of gifts from his mother in this end of year! Wondering if it could happen to us...
Seriously now, the system test case took really a long time, but ignoring this fact, I liked the contest. I think the problems difficulty were indeed propotional to the problems' points/values, and the statements were easy to read.
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Great contest!
By the way, anyone can give me some ideas to solve problem E-div2?
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Интересно, почему 1ая программа выдает -67399853 на 1ом тесте, а во второй всё ок?
1. http://paste.pocoo.org/show/518715/
2. http://paste.pocoo.org/show/518716/
14 лет назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится
the meaning of problem A is ambiguous.


14 лет назад, скрыть # |
Rev. 6  
Проголосовать: нравится 0 Проголосовать: не нравится

really enjoyed the contest, thnx  KADR. wish I didn't make a stupid mistake in D :(

14 лет назад, скрыть # |
Rev. 3  
Проголосовать: нравится 0 Проголосовать: не нравится

В div.2 в задаче D в тесте 

0 0

0 1

1 0
1 1
2 0
2 1

3 1

4 0 

ответ должен быть 

"YES

3 4 5 6

1 2 7 8"??? 


14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
Кстати С задача также решается через ассоциативный массив (map в С++).
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
I failed in case 222 in problem 'Rectangle and Square' and I can't find what the problem is in my code, did anyone encountered the same problem? May anyone help?
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
What is Test#7 in Problem D in Div1 (Cycle)?
14 лет назад, скрыть # |
 
Проголосовать: нравится +15 Проголосовать: не нравится
when will the editorial for the contest be available ?
14 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

Я не могу понять как в задаче D div 2 на тест

0 8
-2 0
-3 0
0 -8
2 0
3 0
0 2
0 -2

Получается "NO" когда можно составить 2 квадрата.Вот:
YES
1 3 6 4
2 7 8 5
Пожалуйста помогите