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

Автор albertg, 11 лет назад, По-русски

Здравствуйте!

Третьего декабря, в 18:00 по Москве состоится Codeforces Round #281 для Див. 2 участников. Традиционно Див. 1 участники могут участвовать вне конкурса.

Это мой первый Codeforces Round и надеюсь, что не последний :)

Большое спасибо Максиму Ахмедову (Zlobober) за помощь при подготовке раунда и MikeMirzayanov-у за платформы Codeforces и Polygon.

UPD1: Разбалловка будет динамической.

UPD2: Контест завершен. Спасибо всем, кто участвовал. Надеюсь, что контест всем нравилось.

UPD3: Разбор задач

UPD4: Top-5 участники. Поздравляю

  1. ShiXingxing15

  2. ganar27

  3. Tim_LinYd

  4. coolwyj

  5. gaoyihan

Еще раз поздравляю gaoyihan — он единственный, кто решил задачу Е.

UPD5: Статистика взломов

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

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +14 Проголосовать: не нравится

два анонса — хороший способ набрать побольше плюсиков :D

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

Одна ошибочка: вы написали MikeMyrzayanov вместо MikeMirzayanov

UPD исправили уже. не ставьте минусы пожалуйста...

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

Why is this in Russian (in codeforces.com) ?

»
11 лет назад, скрыть # |
 
Проголосовать: нравится -13 Проголосовать: не нравится

Fixed :D

»
11 лет назад, скрыть # |
 
Проголосовать: нравится -16 Проголосовать: не нравится

you must be confused

»
11 лет назад, скрыть # |
 
Проголосовать: нравится -12 Проголосовать: не нравится

Tow blog ? why?

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

Спасибо, что заметили ошибки, я их исправил.

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

Wow, what an intriguing round number; 281 is the sum of the first fourteen primes!

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +23 Проголосовать: не нравится

Hope short and simple problem description just like the announcement :)

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +9 Проголосовать: не нравится

This contest's registration will be end 30 minut before the contest Be careful!!!

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +9 Проголосовать: не нравится

"Это мой первый Codeforces раунд. Надеюсь, он вам понравится." — анонс предыдущего раунда, все задачи были решены за 17 минут одним из участников. За сколько на этот раз всё будет решено?

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

Good time for Asian participants :)

»
11 лет назад, скрыть # |
 
Проголосовать: нравится -40 Проголосовать: не нравится

PLZ unlike me :))))) PPPPLLLLLZZZZ

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

А почему регистрация заканчивается за полчаса до начала?

»
11 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +2 Проголосовать: не нравится

По моему будет интересно!

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

Hope more than 4000 contestants.All the fighters fight each other. Happy Coding.

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

Hello Every Body

I Love Codeforces <3

»
11 лет назад, скрыть # |
 
Проголосовать: нравится -42 Проголосовать: не нравится

I want unlike plz unlike me (:

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

Dynamic scoring and 4000+ contestants?! Lets hope that the testing system wont crash. Good luck everyone and to a higher rating!

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

Опечаточка -> Разбалловка будет динамичной**.

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

What does dynamic scoring mean?

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

Мсье знает толк в извращениях

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +16 Проголосовать: не нравится

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

Клар через 75 минут после начала раунда... пять неверных посылок... Мда...

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

4 решенные задачи через 42 минуты после начала контеста... (У меня)

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

what does locking a problem do???

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

Hacks and Hacks in Problem B. I didn't see such amount of Hacks in a problem.

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

Guess what -33 submissions on E and growing ... solving E isnt worth a penny anymore its score will be like 150 to me...

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +77 Проголосовать: не нравится

Sweet, sweet revenge :)

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +13 Проголосовать: не нравится

Good bye blue color see you again :(

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

В претестах к А нет теста, в котором один игрок набирал бы две красные карточки... И, к сожалению, я единственный человек в своей комнате, который заслал решение без проверки этого... Что так сложно было забыть об этом условии, чтобы я вас взломал?)

  • »
    »
    11 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Такой тест был в претестах.

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

      Хорошо, моё решение не во всех случаях набора двух карточек упало бы, а, например, если бы один парень получил одну красную карточку и потом бесконечно много желтых:

      a[j][m][k] ++;
      if( a[j][m][0] == 2 || a[j][m][1] == 1 )
          cout << s[j] << " " << m << " " << t << endl;
      

      UPD: Или даже одну красную, а после одну желтую.

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

This feeling...

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +9 Проголосовать: не нравится

So, what were the horrible tests at B? It seemed pretty simple to me and my solution wasn't hacked but boy, there were tons of hacks. So any specific corner cases?

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится

How to solve E ?

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

    Firstly, from P(t) = a, you should notice that sum of all coefficients of P(x) should not larger than a. Secondly, from P(a) = b, you can find the minimum of sum(noted as S) of all coefficients occur when you decompose b into base a and all coefficients are smaller than a. And for other type of decomposition of b, the sum of all coefficients will be at least S+a-1. So when S>1, you only need to check the decomposition of b with minimum sum of coefficients. And discuss special case when S=1.

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

      Oh, that's a cool solution, I was sure it'd be some difficult math on polynomials, but it seems like it was easier than expected.

      And wow, aren't you unlucky to fail E because of one line of code :P

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

Is D really such sort of trololo?)

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

    Well technically if you don't come up with the idea it isn't clear that it's so simple. And also dynamic scoring makes it possible to give such a problem, since if it turns out to be too easy, the score will just go down :P

    Though it's cooler to give such problem to contests where you don't see a global ranking, since when you notice 800 people solved it, you'd think it's something simple, and you might even get it right without any idea why it works.

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

If you can give me an anti-case for the solution below of problem D, I can give you hundreds of System Test Failure:

if(n%2) cout<<"black\n"; else cout<<"white\n1 2\n";

Thanks for having such a funny problem! :)

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

Tell me, that solution for D is not:

    if ( (n & 1) == 1 ) {
        System.out.println("black");
    } else {
        System.out.println("white\n1 2");
    }
»
11 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

In last minute i could not submit my code for server (page Loading) problem :(

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

For anyone asking, yes, the solution for D is that simple (4 lines of code).

If n is odd then black can mirror moves, and as soon as white takes something from the middle column, black can take white.

If n is even, then white can play "1 2" and ignore column 1 for the rest of the game. In this way you can view it as if they are starting a new game on nx(n-1) field and black is first. Now white can use the above strategy since the number of columns is odd.

It's good that the problem had dynamic scoring, else it would've been a messy competition.

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

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

A and B was easy. C was interest. hope my C will survive in system testing

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

How I can solve problem B?

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится

Oh my... I misunderstood B "lexicographically" as appending all scores into string then compare them...

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

Can someone give a proof for D? :D

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

I'm not a professional hacker. Could you please tell me why this is getting invalid input for C?

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
#define ll long long 
ll dp[6000];
int main()
{
	cout<<200000<<endl;
	for(int i=0;i<200000;i++)
		cout<<1999999999<<" ";
	cout<<1<<endl;
	cout<<2000000000;
}
»
11 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

is it good practice to always use long long instead of int to avoid overflow problems like in problem b?

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

    I had such period in my programming carrier where I would use only long long. On first glance it seems like a good thing but on more serious competitions such as IOI or ACM requiring some tough data structures or time limits on the edge, then long long can make the difference, as it takes twice more memory and is considerably slower than int when doing a lot of operations, so I stopped using it.

    However in Div2 A,B,C, I think using long long always shouldn't have any drawbacks.

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

    It depends. Sometimes it might slow down the program (operations on long long aren't as fast as on int) or exceed the memory limit (long long is a 64-bit data type while int is a 32-bit type).

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

    testing system has 32 bit processors, so use 64 bit integers only if necessary.

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

Achievement unlocked.

Решить D, но не решить A и B)

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

I passed problem D. It's like this.

n = input() if n%2 == 0: print "white" print "1 2" else: print "black"" but I cannot explain the laws of the game satisfactory. Have you brief description?

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится

Oh, I didn't notice "If there are several such scores, find the one in which number a is maximum." in C :(

I didn't notice to use something like long long instead of int for B :(

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +13 Проголосовать: не нравится

Very good, balanced contest! Congratulations, albertg

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

don't care about high rating this time ... just adore to remember submitting any solution and get pretests passed and laugh xD xD

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

test: #38 in the problem B

input: 3 -12 3 9

output: second

why is second and not first?

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится

I just didn't passed problem A and i had error ... so i left the contest...

Maybe contest was good but i don't know why i was like this... :(

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

My 99th rated contest. bye bye div 2....!!!! Nice to have 100th round in div 1...!!!

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

Is it contest too??? Why, problem D very simple, than A,B,C?

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +6 Проголосовать: не нравится

I liked this contest. Although I didn't done it well, but I think the fact that all the problems have such simple answers and they didn't need using any special structures was interesting... ! :D Well done albertg and thank you for this contest : )

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

For problem A I got wrong on pretest 6. How can a football player get two red cards in the same match ??? Isn't it a mistake when input makes us realize that in a football match one player can get two red cards .... how funny -_-

»
11 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +5 Проголосовать: не нравится

From the statement of problem E, I couldn't understand that ai are non negative integers. However, after a time, I noticed that they were, but still, they should've mentioned it...

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

I have one small doubt in problem A. I had used variables t (its value is either 'h' or 'a') and card (its value is either 'r' or 'y') to represent team and type of card respectively. If I keep there data type as int then the output shows runtime error. If there data type is used as char then the code works fine. From my understanding, variable of type char can also be represented by int. Please correct me if I am wrong.

Thanks

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

Я думаю в задаче А три варианта: 1. Либо Вася совсем тупой. 2. Либо он придумал свой футбол. 3. Либо автор не знает, что такое футбол. Вот скажите мне КАК??? после того как игрок получит красную карточку, он может получить еще одну красную????

  • »
    »
    11 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Это красные карточки по мнению Васи, матч шел независимо от него.

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

      Понятно, что матч шел независимо от Васи, но в условии сказано, что Вася является судьей. Судья НЕ МОЖЕТ показать красную карточку игроку, который уже удален, это бессмысленно. Но конечно, если автор придумал такую бредятину, то он мог бы добавить такой же случай и в примеры, чтобы было хотя бы понятно, что автор или Вася смотрят или судят)))

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

        Я думаю, в этой ситуации два варианта: либо у вас ДЦП, либо это такой очень тонкий троллинг. К сожалению, я больше склоняюсь к первому...

        • »
          »
          »
          »
          »
          11 лет назад, скрыть # ^ |
           
          Проголосовать: нравится 0 Проголосовать: не нравится

          Отвечу только на два первых слова: ты льстишь себе. А вообще — играй в футбол!

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

            Какой аргументированный выпад, даже вот и не знаю, как ответить...

            Про футбол не буду ничего плохого говорить. Скажу лишь, что разонравился он мне лет в 17. Как играть, так и смотреть не доставляет особого удовольствия. Изредка можно по приколу. Но так, как раньше, я уже не вижу в этом какого-то смысла. Та же DotA 2 куда интереснее, на мой взгляд, по всем параметрам.

      • »
        »
        »
        »
        11 лет назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится

        У меня все сомнения в спортивном программировании отпали после задачи "Вася купил n фруктов...", где n <= 10^14, а тут какие-то карточки

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

    Читать научись, а потом скажу тебе, КАК

  • »
    »
    11 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Если бы все задачи были реалистичны... В условии конкретно сказано, что нужно найти. Не надо проводить аналогии.

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

    будьте уверены, я знаю, что такое футбол. Прошу Вас еще раз читать условие.

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

Почему в таске С на 11-й тест ответ 6:8, если можно сделать 0:0? Надо же прежде всего максимизировать разницу a и b. Вот тест:

2

3 3

3

1 3 3

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

В задаче C разность a-b должна быть просто или по модулю наибольшей? В условии про модуль не говорится.

UPD: да, без модуля

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

D это задача? Это троллинг, а не задача :) Было бы интересно посмотреть разбор автора, тем более что контрпримера наверняка никто не сможет найти к решению задачи. Можно как-то доказать, что если (n^2-2) делится на 2, то первый ферзь забирает пешку последнюю, но это какая-то непонятная задача, и вообще она меня бесит :)

  • »
    »
    11 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Я мутант, разбор давно уже опубликован

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

    Я понимаю, что ты очень рад, но можно держать свои эмоции при себе? Ты несешь какую-то бессмысленную ахинею, на которую даже ответить нечего

    • »
      »
      »
      11 лет назад, скрыть # ^ |
       
      Проголосовать: нравится -11 Проголосовать: не нравится

      "Я понимаю, что ты очень рад, но можно держать свои эмоции при себе? Ты несешь какую-то бессмысленную ахинею, на которую даже ответить нечего"

      Настолько нечего ответить, что не можешь промолчать? :)

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

Shouldn't it be forbidden to talk about contest in blog's during contest? Some posted information can be accidentally useful for someone. Comments about hacks and predictions of problem price dynamics can serve thoughts how to use competition time more effective to achieve better performance. Nor it is a table of results, there are not shown analysis, predictions or breakthroughs from these results, and if participant want, he should do it by himself. If participant reads, that many hacks are made on problem X, this can save him time to search by himself which problems are hot on hacks. And if participant reads that there are many hacks on problem Y, this can save him time for not searching manually that statistic in many pages of results, even if there are no hacks in his room.
http://mirror.codeforces.com/blog/entry/14959#comment-199414 on 1h 55th minute of contest
http://mirror.codeforces.com/blog/entry/14959#comment-199415 on 1h 56th minute of contest
http://mirror.codeforces.com/blog/entry/14959#comment-199416 on 1h 56th minute of contest

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

I got a wrong answer at final test on problem B because I used longint instead of Qword...

A big lesson for me in next contest.

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

For problem A I never knew that if a player got a red card, he/she can still get a red card, which fails my solution. Forgot to use long long for Problem B :( Knew how to do E but fail and some case. :'(

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

http://pastebin.com/UjZFdCXR

Why with this code I take wrong answer in testcase 6. Could anyone help me,because I cant find my error for some hour... Thanks !!!

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

Почему, когда соревнование закончилось, после некоторого времени, начало показывать, что типа я виртуальный участник, хотя я регистрировался, и отправлял во время соревнования, и после соревнования всё было норм, а потом написало, что типа я виртуальный участник, и естественно в рейтинг мне не пошло, хотя место было неплохое, и я хотел чтобы у меня поднялся рейтинг, как это исправить?