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

Автор EvenImage, 12 лет назад, перевод, По-русски

Всем привет! Приближается Codeforces Round #268! Мы приглашаем вас поучаствовать в этом раунде. Он начнется в 17:00 по московскому времени 20-го сентября.

Задачи раунда были подготовлены мной. Спасибо xyz111 и dhh1995 за идеи некоторых задач. Также благодарю vfleaking,foreseeable, MinakoKojima, Ruchiose и xllend3 за тестирование.

Традиционно говорю спасибо Gerald за помощь с раундом, Delinur за перевод условий и, конечно, MikeMirzayanov за Codeforces и Polygon.

Это мой первый Codeforces раунд. Надеюсь, он вам понравится.

В задачах раунда вы будете помогать герою, чье имя Little X. Удачи вам и удовольствия от решения задач! :)

UPD

Раунд закончился. Спасибо за участие.

Мои поздравления победителям.

Div. 1

  1. PavelKunyavskiy
  2. Kostroma
  3. HellKitsune
  4. SirShokoladina
  5. DemiGuo

Div. 2

  1. manman
  2. topcodecheforces
  3. mhy12345
  4. GS_ZJ_137
  5. z.last

Поздравляю ecnerwala, единственного решившего задачу D!

К сожалению, никто не решил задачу E в обоих дивизионах.

Разбор задач будет опубликован завтра.

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

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

Looking at the level of the setters, I would say a Div 1 round would have been possible :( Edit: I thought today's round was their round, don't mind :P

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

another china round! good luck everyone :)

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

Why "Little X", but not simply "x"? :)

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

It's the first time to see contest announcement before the start of previous contest :D

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

Why are there so many numbers in the handles of the problem setters ? =D

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

Yessssss

Chinese round -> more math

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

    There is actually going HackerRank contest "Ad Infinitum — Math Programming Contest September'14 ". It lasts 2 days :). Give it a try.

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

    First of all, before this commented is downvoted, I would like to point out that codeforces is for developing your algorithmic knowledge. Depending on your definition of "algorithmic", math could be considered an algorithm; and this is a perfectly valid opinion. However, what is the point of competing in coding contests if all you want is math all the time. Every time you post, it's about math; nothing else. Coding contests are meant to introduce you to varied ways of thinking, not limited to math.

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

Oh, god, I think I can't participate any more Chinese round, because it is 6:00 am here.

Btw, I guess more testers you have then more difficult this round will be.. let's see if it is correct.

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

nice

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

Опять несколько часов до раунда, а перевода нет...

И опять я ругаюсь на это... в прошлый раз, когда я так ругался, в переводе был Яблов, а в этот раз, чувствую, будет "мальчик с именем Маленький Ху...".

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

So, its going to be a typical chinese round . good luck everyone :)

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

My last contest in summer! I'm going to school on Tuesday! Hope a good contest! Good Luck!

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

I have registered for the contest, but due to time constraints (I have to participate in a qualifying round of some other contest), I will not be able to participate for the entire 2 hours. Can I appear as a virtual participant (If I participate for the first hour of the contest)?

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

I will try to help Little X as much as possible but can Little X tell us score distribution ?

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

Attention please,it's a Chinese round!There is reason to believe that it's impossible for the konjacs(its Chinese name ‘juruo’ means the people with low level like me)to improve rating.Good luck to every super cattle(you may be able to understand it)! TAT

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

Many GranMaster & Master for prepare this round. My premonition told to me that "be careful with tricky test"

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

Ehm, score distribution?

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

It seems that I will participate in the next contest (Div2) Officially :D

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

500 — 1000 — 2000 — 3000 — 3000 :(

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

B(div1) 4 7 9 2 4 5 7 If someone need.

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

По окончанию раунда собирался написать вот это сообщение, но понял, что тут написан бред =)

"Держу пари, что в C div1 ответ всегда имеет вид 1 R, где R ищется бинарным поиском. Динамикой можно преподсчитать сумму от 1 до N, где N — число вида С0000...000, где С — некая цифра от 1 до 9. Считается динамика, как я понял, за 200 (макс. длина) на 9. Единственное, пришлось бы немного помучиться еще и с длинной арифметикой (хотя поделить длинное число на 2 вроде бы не сложно). Так как 10^200 ~ 2^600, то асимпотика выходит O(600 * 200 * (махинации с длинными числами) + 200 * 9).

Если идея не верна — напишите как надо было решать, только понятными словами =)

P.S. За полчаса до конца раунда я бы такое реализовать не успел."

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

    Бинарным поиском простите по чему? Остаток по модулю не монотонен.

    Я делал так. Во первых научимся быстро считать сумму. Это делается за длину числа какими-то не очень сложными формулами. Если мы найдем два числа, дающих одинаковый остаток, то мы победили. Будем смотреть только на числа с остатком не больше 1000. Тогда если мы посмотрели на 1000 таких чисел мы победили. Теперь просто смотрим на все числа по очереди, и если остаток стал слишком большим, то бинпоиском находим место в котором он следующий раз переполнится через A. Так как сумма цифр одного числа небольшая, то понятно, что переполнится не сильно, и хотя бы одно новое число мы найдем.

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

      Бинарным поиском простите по чему? Остаток по модулю не монотонен.

      Вот поэтому я и понял, что это бред =)

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

      У меня бинпоиск. f(i) весьма случайные и небольшие. Можно перебрать левую границу, для нее найти правую, что сумма на отрезке >= a, и проверить отрезок.

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

      Вроде все намного проще:
      Обозначим за x сумму f(i) от 0 до 1018 - 1
      Надо рассмотреть два случая:
      1) Если x ≡ 0(mod a) — выводим [1, 1018 - 1]
      2) Иначе это [rev, rev + 1018 - 1], где rev = a - x%a.

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

    На самом деле идея с бинарным поиском почти верная, только ответ будет не 1 R, а b R, где b — какое-то маленькое число. При этом забиваем на условие solve % a = 0 и просто ищем такие b R, что solve(b, R) = a. Очень легко реализовать. Решение

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

what was the hacking case in div-1 B...my solution got hacked :(

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

Как решать В(div.1)?

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

    Для каждого числа необходимо найти его отражение в множестве А и множестве B (то есть сумма числа и его отражения равна a или b). Делается это за линию для каждого множества. Далее убираем все числа (и их отражение), которые имеют только одно отражение в каком-либо множестве (логично же, что в финальном ответе это число может находиться только там). Когда все такие числа убраны, возможно два варианта: у какого-то числа не осталось свободного отражения (ответ NO), либо у всех чисел есть по два отражения в каждом множестве. В этом случае можно засунуть все эти числа в любое множество и быть счастливым. Важно понять, что число может быть отражением самого себя (претест 6) (например, в множестве А с a = 4, может находиться один единственный элемент 2).

    UPD: Решение верное, но после того как один раз будут убраны возможные числа, могут образоваться новые числа только с одним отражением. Поэтому необходимо провернуть операцию с удалением как максимум 10^5 / 2 раз, а это не проходит по времени. Другой вариант решения: это удалять числа рекурсивно. То есть, например, есть у нас 4 числа: a1, a2, a3, a4 (a1 + a2 = a, a2 + a3 = b, a3 + a4 = a). Можно заметить, что числа a2 и a3 имеют отражения в обоих множествах, в то время как a1 и a4 только одно отражение. Как только мы натыкаемся, например, на число a1, мы сразу можем засунуть его и a2 в первое множество, а раз у a2 было второе отражение, то у этого второго отражения уже станет на одно отражение меньше. То есть число a3, после того, как убрали число a2, тоже можно будет убрать (если, конечно, у него еще остались отражения (число a4), в противном случае ответ NO).

    P.S. Надеюсь понятно написал =)

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

    Как вариант, стандартным для всех задач подобного вида методом — с помощью 2-SAT.

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

How to solve C ??

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

How do we solve Div2 Problem C?

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

    There are several ways to solve it. You can see that with N < 4, there is no answer. With N = 4, you can easily take (1 + 2 + 3) * 4 = 24. N = 5, 2 * 4 = 8, 3 * 5 = 15, 8 + 15 + 1 = 24. From N = 6, 4 * 6 = 24, 3 — 5 = -2, -2 + 2 = 0, 0 * 1 = 0, then for i from 7 to N, 0 * i = 0, and finally, 24 + 0 = 24.

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

    I took special cases for 4,5,6 and

    and for n>=6

    used pre-created sequence for 5 and 6 based on even or odd n,

    made every element n and n-1 as (n)-(n-1)=1

    and multiplied all the ones in the end.

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

Can anyone share his/her approach in Div2 C problem ?

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

How to solve Problem D of Div. 2 ?

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

What's the solution for problem C? Is it some kind of greedy/constructive algorithm based on number theory, or is it dynamic programming? The numbers are from 1 to N, so I assumed it was a number theory problem but couldn't come up with a solution.

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

    For numbers up to 3 answer is 'NO'.

    Solution for 4:
    1 * 2 = 2
    2 * 3 = 6
    6 * 4 = 24
    
    Solution for 5:
    5 - 3 = 2
    2 + 1 = 3
    2 * 3 = 6
    6 * 4 = 24
    
    Other solutions:
    N - (N - 1) = 1
    (N - 2) - (N - 3) = 1
    ...
    1 * 1 = 1
    ...
    <- solution for 4 if N is even or 5 if N is odd
    
  • »
    »
    12 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Just notice this if(n<4) no soln if(n==4) 1*2*3*4=24 if(n==5) 4*5+3+2-1=24 and for all other numbers, if n is even then you do the 4 thingy and keep doing i+1-i=1 for all the numbers, and at last do 24*1=24 as many times is you need same thing for odd n, just you would use 5 thing

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

    You can get the 24 by using 2, 3, 4 or 1, 2, 3, 4. For the neighbor number, say, i and i + 1, we can get 1 by using - operator, and 1 can be eliminated by * with other number. Then I think you get the answer:-)

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

    if n is less than 4, obviously no solution. Then 2 cases, if n is even, we can reduce the sequence to 1,2,3,4 (after which we just multiply each element one at a time). By subtracting n and n — 1, multiplying 1 and 1, then n — 2 and n — 3 and so on.. if n is odd, you can similarly bring it to 1,2,3,4,5, we can reduce to 2,3,4 by doing the following: 1 + 5 = 6, 6 — 3 = 3. After this we just multiply each one again. Hope its clear :)

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

    A much easier solution is to get 1 by doing n-(n-1) and then 1-1=0. Now do i*0=0 for all i from 5 to n-2. And then do 2*3*4 = 24. For n<=6 pre calculate the ans. I hope you get it.

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

This contest reminds me of the Codeforces Round #146 (Div. 1) which was prepared by WJMZBMR... Codeforces Round 146 (Div. 1)

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

To those who have problems with div. 2 C here is my approach:

First print out the answer for cases n <= 5. Then for n > 6 you realize that you can make 24 by multiplying 6 and 4. Then you are left with the burden of creating n — 2 more operations, thus, you subtract adjacent numbers so you get a long chain of 1's, be careful that you cannot use 6 and 4 again. Then you simply keep alternating between: 1 — 1 = 0 1 — 0 = 1

until you are left with 1 or 0 then you can just do either 24 + 0 = 24 or 24 * 1 = 24

I did this approach during this contest and it seems to work. I was a bit dumb for the first hour because I forgot to print out "YES" at the beginning >.<

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

    Haha I forgot to print "YES too :P

    My solution was as follows: the n = 4 is easy, because we can just multiply 1 * 2 * 3 * 4 = 24. The n = 5 is a tiny bit trickier, but we have 4 * 5 = 20, then 20 + 2 + 3 — 1 = 24. Now, if n > 5, we can take the two largest numbers, n and n-1, and subtract n-1 from n to get 1. Now, our list is 1, 2, 3, ..., n-3, n-2, 1. If we multiply the two 1s, we are left with 1, 2, 3, ..., n-3, n-2, which is the list for n-2, a smaller case! This means that n = 6 will work, since we can reduce it to the n = 4 case, n = 7 will work, since we can reduce it to the n = 5 case, and so on.

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

    my answer is 1*2*3*4*(6-5)*(8-7)*...*(n-(n-1))=24 for n is even 5*4+3+2-1*(7-6)*(9-8)*...*(n-(n-1))=24 for n is odd

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

Как решается C(Div 2)?

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

    Реши руками для N = 4 и N = 5, забей в строковые константы.

    Если N < 4 то решения нет, иначе своди к случаям 4 и 5.

    Это можно сделать, отрезая с конца по 2 числа — превращая их в 1 (a[i] — a[i-1]), а потом умножая эту 1 на 1, которая уже есть.

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

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

Fuck math with no programming!

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

That was one fast system test!

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

Why so weak pretests???
I guess lots of Bs will fail.
Also there was too many WA2 in problem A... For constructive problems, first sample should be more difficult. :|

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

I spent all 2 hours on problem D but still cannot finish coding it...

Calculating "lexicographically smallest" one is very confusing, and I couldn't make solution without very complex iteration. Doesn't there exist any simpler solution?

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

Like 90% of 469D - Два множества has failed tests. Lol!

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

Wow, system test over in 10 minutes this time!

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

thanks for the fast system test~ I think I could back to blue.

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

problem A:

for n=1,2,3: no

for n=4 : 1*2*3*4

for n=5 : (3*1+5-2)*4

for n>=6 : 2*3*4+(6-5-1)*7*8*...*n

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

for div 2 B And D

what is the bug in my solutions ??

Code_B

Code_D

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

Isn't this code wrong 7871552 ??

Test: 2 1 0 0

1 5

2 4

7 7

UPD:The inputis illegal sorry.

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

Ehh..

if (n % 4 == 1) { ... cout<<"3+1 = 4\n"; ... }

There wasn't any pretest for n % 4 == 1? It's really disappointing :\

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

My solution for div-1 B using dinic's algorithm for maxflow TLEd :(

I thought it would run in O(E * sqrt(V)) time as all edges are of unit length. Can anyone please let me know why dinic would be suboptimal? Isn't it the same as Hopcroft-Karp for unit graph?

My Submission

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

By the way, somebody solved problem E in Division 1...

»
12 лет назад, скрыть # |
 
Проголосовать: нравится +101 Проголосовать: не нравится
printf("24 * 1 = 1\n");

and Failed A...

What a sad story :((

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

Great test for problem D Div 2. Lots of Failed System Test

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

Can you give me an example on which my code doesn't work ? ( Sorry for my poor English) http://mirror.codeforces.com/contest/468/submission/7883022

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

I can not understand the reason why many of the chinese authors make hard and mathy problem set. In my opinion, contest's easy problem should be easy. Otherwise it is not motivating enough for people to participate.

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

I've entered for the next div2 contest.The konjac(its Chinese name ‘juruo’ means the people with low level like me) has no human rights.

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

winter is coming

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

when will the ratings be updated?

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

About Div1 B. Does anybody have a case with an odd n and positive answer? Or could explain why this is possible? I assumed this wasn't possible during the contest, but apparently it is. Maybe I misunderstood the problem.

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

can someone explain why this solution is incorrect? http://mirror.codeforces.com/contest/469/submission/7867443

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

Извините, а кто-нибудь может подсказать, что не так с моим вариантом решения задачи D — ошибка на тесте 7876802 ?

В результате теста указано, что "wrong answer The 2-th set don't contain a-69950", но при ручной проверке вроде как подтверждается мой вариант решения — 69950 есть во втором наборе (416023 — 69950 346073, но нет в первом, что и отражено). А Множество B вообще не содержит значений (a-х), там только (b-x) же...

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

    Предположу, что если a-69950 не содержится во втором множестве, то оно содержится в первом. Значит, и 69950 должно содержаться в первом. А оно у вас, как вы говорите, во втором — уже несостыковка.

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

    Имел ввиду, что в сете 2 вообще не может быть значений (a-х), они в сете 1. В сете 2 только (b-x).

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

      Ещё раз повторю, что если какое-то число X находится во множестве 2, то и число a — X обязано находиться во множестве 2 (подумайте, почему), отсюда и связь между множеством 2 и числом a.

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

    Вроде у вас во втором множестве числа 69950 и 345665, разве нет?

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

How to solve Div 2D/ DIV 1B ?

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

Task D div 2 (Two Sets) Test Case 9:

How could the correct answer be YES 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ?

when it is stated in the text: If there is a way to divide the numbers into two sets, then print "YES" in the first line.

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

Can any one please point out the mistake in my code. I am a newbie and am unable to find the glitch in CODE 469D. Thanks in advance

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

When will they update ratings?

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

Chinese Round again, so difficult problems again...

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

Can anyone tell me what's wrong with my code for problem D, please?

7882442

Thank you!

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

very interesting and enjoyable problem indeed..i enjoyed this very much :D

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

I have a question regarding this submission 7868179 Div.2 problem A .. I unsuccessfully tried to hack the solution using a testcase where the algorithm will try to access h[100] while the size of the array is actually 100! so the last element i can access is h[99], but the hack was unsuccessful .. any explanation ??

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

My first time doing the first three problems . Best wishes.

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

So much math, it's awesome round!

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

EvenImage Thanks! It was a great Round!

Could anyone clarify on grading policy?

I've successfully submitted solutions for 2 tasks without penalties or resubmissions but my final round score is negative why it could be so?

Thanks!

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

I just wanted to leave this here: 7878473

In case you're too lazy to open, here is the whole accepted code to C in Python (authored by ZhouYuChen)

m = int(input())
x,t=10**100-1,m-100*45*10**99%m
print(t,t+x)

I have to say that I'm impressed :P

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

    A really neat/impressive solution!!

    What is the logic behind the solution?

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

      Let S(l, r) be the sum of digits of numbers form interval [l, r]. Take big k and see that S(1, 10k) = S(2, 10k + 1) - 1 = S(3, 10k + 2) - 2 = ...

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

        Here we have with x=10^100 — 1 and t=m-(450*10^100)%m = m-r , where r<m

        S(t,t+x) = S(1,1+x)+(t-1) = S(1,10^100)+(m-r-1)

        Above must be equal to 0 when taken mod m

        (S(1,10^100)+(m-r-1))%m should be = 0

        S(1,10^100)%m + (-r-1)%m

        If the above steps are accurate, I cant follow the proof after that.

        Can you please explain?

        Thanks.

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

          You are taking a hard way to understand this problem. I used the same idea and I think I can explain more clearly.

          There are 4 things to observe:

          1) S(1,10^k) = 45 * k * 10^(k-1) + 1

          You can try to convince yourself doing some mathematical proof or just run a script that calculates in a brute force fashion when k is small.

          2) S(1,10^k) = S(2,10^k)-1 = S(n+1,10^k+n)-n

          This is the trickiest part! In the first case, l = 1 and r = 10^k. What happens if we increase them both? l = 2 and r = 10^k+1. In this case, we "removed" one element whose function value equals to 1 and "added" another one whose value is 2 (10^k+1 has two 1's and a lot of 0). You can observe (by induction) that the same holds for any value we add to both l and r. Therefore, this formula I wrote here is correct

          3) S(1,10^k) % M = x if and only if S(M-x+1,10^k+M-x) % M = 0

          Well, if you add M-x to both boundaries of S(1,10^k), you will have S(1,10^k) = S(M-x+1,M-x10^k) + x — M, according to property (2). Then you take modulo M and you will have S(M-x+1,M-x10^k) % M = [ S(1,10^k) + M — x ] % M = [ x + M — x ] % M.

          4) S(1,10^17) > 7 * 10^18

          Finally, as a is at most 10^18, you have to find a power of 10 that guarantees a sum that is greater than that value. I wrote a simple script in Python that calculated S(1,10^k), according to formula (1), for some k and I found that k = 17 was enough.

          If you have any further questions, you can take a look at my last submission for this code or write a message.

          Regards

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

Can someone explain the greedy approach to Div.2 D / Div. 1 B Two Sets?

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

This round taught me a lesson and warned me about my deficiency in coding details. Besides I eventually understood that you may never think about getting more rating in Chinese Round. But actually it may not be the reason for not participating the contest, for the main purpose that we compete in CF isn't the for the rating. Even so, there will be a long time for me to regain my confident and to participate another round especially the Chinese Round.

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

Can anybody explain what is the flaw in my approach Solution ?

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

Can any one tell how to approach problems in competition so that it takes less time complexity and how to approach math problem fastly.

And what's the time complexity of program if i write n^2 solution to the problem in test case loop.