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

Автор hloya_ygrt, история, 7 лет назад, По-русски

Привет сообществу Codeforces!

CodeChef представляет August Cook-Off 2017 (https://www.codechef.com/COOK85)! Вас ждут 5 задач и 2.5 часа программирования!

Вместе с Шефом контест готовили:

  • Готовили задачи: Melnik (Даниил Мельниченко) и hloya_ygrt (Юра Шиляев)
  • Тестировали задачи: kingofnumbers (Hasan Jaddouh)
  • Админ: kingofnumbers (Hasan Jaddouh)
  • Разборы готовили: Melnik (Даниил Мельниченко) и hloya_ygrt (Юра Шиляев)
  • Русские переводы: Melnik (Даниил Мельниченко) и hloya_ygrt (Юра Шиляев)
  • Китайские переводы: huzecong (Hu Zecong)
  • Вьетнамские переводы: VNOI Team
  • Проверка условий: (Priyank jaini)

Надеюсь вам понравятся задачи. Оставляйте свои впечатления о них в комментариях после контеста.

Некоторые детали:

Время: 20-ого августа 2017 (2130 hrs) до 21-ого августа 2017 (0000 hrs). (Indian Standard Time — +5:30 GMT) — Уточняйте свой часовой пояс.

Подробности: https://www.codechef.com/COOK85

Регистрация: Вам достаточно быть зарегистрированным на Codechef, чтобы учавствовать. Сделать это можно тут.

Призы: * Топ 10 участников в общей и Индийской категории получат CodeChef laddus, с помощью которых вы можете получить клевые сувениры от CodeChef. Более подробно: https://www.codechef.com/laddu. (Для тех кто по каким-то причинам не получил их за предыдущие заслуги, напишите сюда [email protected])

Удачи! Надеемся увидеть вас на контесте!

  • Проголосовать: нравится
  • +80
  • Проголосовать: не нравится

»
7 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

The contest has just started!

»
7 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

What is wrong in my approach for B ?

int a = Math.min(A , B);
int b = Math.max(A , B);

int minor = Math.min(b - a , k - (b - a));
long ans = 0;
if(!(k % 2 == 0 && b - a == k / 2)) {
    ans += minor - 1;
    ans += 1L * (k / 2 - minor - (k % 2 == 0 ? 1 : 0)) * 2;
}
 println(ans);

Basically I am checking if a and b are in the diameter , if they are not then I'm adding all points in the minor arc . For the major arc I am finding the point which subtends 90 degree at a or b . This point should be at the other side of diameter from a or b .

  • »
    »
    7 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    I think you shouldn't be counting any points on the major arc. The answer is just minor-1.

  • »
    »
    7 лет назад, # ^ |
    Rev. 4   Проголосовать: нравится +10 Проголосовать: не нравится

    It is this simple.

        int k, a, b;
        scanf("%d %d %d", &k, &a, &b);
        int d1 = abs(a - b);
        int d2 = k - d1;
        int ans = 0;
        if (2 * d1 < k) {
          ans += d1 - 1;
        }
        if (2 * d2 < k) {
          ans += d2 - 1;
        }
        printf("%d\n", ans);
    
»
7 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

How to solve that game problem ?

»
7 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Is it possible to see the tests on Codechef?

»
7 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Hint for Tree Connectivity?

  • »
    »
    7 лет назад, # ^ |
    Rev. 4   Проголосовать: нравится +18 Проголосовать: не нравится

    Iterate over the vertices in order of their labels, and use a lazy segment tree to determine the number of possible R's for a certain L. In my opinion, this was much easier than "Game on a Stick."

»
7 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

I think this is the First Cook off to get above 3000 participants ! Wow!