Tutorial is loading...

Tutorial is loading...

Author: MikeMirzayanov

Tutorial is loading...

Tutorial is loading...

Tutorial is loading...

Author: qoo2p5

Tutorial is loading...

Tutorial is loading...

Authors: grphil, qoo2p5, super_azbuka

Tutorial is loading...

Author: grphil

@grphil Can you please add a link to the editorial in the announcement post or the contest website :)

I love how elegant the solution to U2 was. Just a simple transformation and a difficult problem can be solved by finding the convex hull.

why (a-b)%c,(a+b)%c,(b-a)%c,(-a-b)%c will give me ans. if anyone explain it will be helpful

I think it is a mistake, it should be %k for all.

but why is %k required? can someone explain.

you can assume c = l % k.

in problem C if the node doesn't respect it's parents and also if it's children doesn't respect it then we can make frequency array for all nodes such that for every node we count its children respecting and another array for counting for every node how many children it has and then iterate over all nodes and check if frequency[node] == children_count[node] then add this node to our solution

https://codeforces.com/contest/1143/submission/52133561

I saw many solutions of B and did not find any by Dynamic programming approach. I solved the problem by Dynamic programming. If anyone want to try this approach Here is the code. Its basic Digit DP. https://codeforces.com/contest/1143/submission/52039066

devarshi09 bro i can't get your solution with dp... can you pls explain it for me...!! :)

All problems are interesting. A great round.Thanks. And there's a shorter solution to div1D (with complexity of O(N·11) ).

Thanks for fast editorial.

52156018

For div2 E, could someone go more into detail for how to use binary lifting? (the only way I've used it before is to find lca)

You need to calculate $$$b[b[b[\ldots b[i] \ldots ]]]$$$ $$$n - 1$$$ times. You can do the following: first you calculate $$$b[b[i]]$$$, then $$$b[b[b[b[i]]]]]$$$, then the same thing 8 times, 16 times and so on. To calculate this you can use the same algorithm as it was for calculating binary lifting fo LCA. And then you can calculate $$$b[b[b[\ldots b[i] \ldots ]]]$$$ $$$n - 1$$$ times the same way as the $$$k$$$-th ancestor in the tree using the binary uplifting (first you compare $$$2^{20}$$$ and $$$n$$$, if $$$2^{20}$$$ is less, then you go upwards by $$$2^{20}$$$ and decrease $$$n$$$ by $$$2^{20}$$$, then you do the same with $$$2^{19}$$$, $$$2^{18}$$$ and so on.

This really helps, thank you so much!

In problem D

The parameters of all numbers that come from x will still be defined because if we increase a by 11, these parameters will be the same modulo 11, if we increase b by 11, a and b parameters of all numbers that come from x are increase by 0+1+2+…+10=(11⋅10)/2=55 which is 0 modulo 11. The same is with c parameter.Can someone explain that why it is the same when changing parameter c?

I find it hard to understand the editorial, please make the editorail more specific..

With $$$c$$$ it is the same because if you increase $$$c$$$ by 11, $$$a$$$ parameter for numbers that come from $$$x$$$ will increase by 11 which is 0 modulo 11, $$$b$$$ parameter will not change and $$$c$$$ parameter will increase by $$$0 + 1 + 2 + \ldots + 10 = 10 \cdot 11 / 2$$$ which is 0 modulo 11

Now I fully understand. Thanks for the explanation and the awesome problem!

Lynyrd Skynyrd can be solved in linear time, using DFS instead of binary lifting.

I see.. Great!

http://codeforces.com/contest/1143/submission/52292980 emmmm...like this? DFS the tree from right to left

Can anyone explain why c can take only 4 values? My first thought was find all possible locations of the first visited restautant and find all possible locations of second visited restaurant. Then find all corresponding values of

lbut this will obviously timeout. Can anyone share the correct approach.It doesn't matter where the first and second restaurants are, only the distance between them. So N different distances, times 4 for different ways to place first and second points around them.

Could you please elaborate on the second part? Why N different distances?

you can see my answer below，i drew a picture，maybe it can help you

question about 1142 C. How to understand, what lines are top and what are not?

Div 1 C: what if there isn't a way to draw some parabolas that satisfy the statement? Like... (1,2) and (1,3)? Edit: Nevermind i was dumb

In div1D, I have a short (~20 lines) solution which doesn't depend on starting numbers, it only uses the fact that if we know that $$$x$$$ is the $$$k$$$-th inadequate number and we want to create $$$10x+d$$$ from it, then we just need to look at the $$$k\%11$$$-th inadequate number (let's denote it by $$$a$$$), at the first inadequate number $$$\ge 10a$$$ (let's say that it's $$$l$$$-th) and then, if $$$10x+d$$$ is the $$$m$$$-th inadequate number, we know that $$$m \equiv l+d$$$ modulo $$$11$$$.

Now I just process the characters in the string in order while remembering how many inadequate substrings ending at the current position have which remainder mod $$$11$$$. The above shows that with minimum precomputation, the transition to the same information (number of substrings for each remainder) after appending the current character $$$c$$$ is uniquely given by $$$c$$$ and can be computed in $$$O(11)$$$ time, so the total is $$$O(11|S|)$$$.

emm...The div1D use int[1e5][11][11][11] get memory limit，use unsigned short[1e5][11][11][11] get wrong answer because the max(unsigned short)=65535<100000

For div2 D, could someone go more into detail ? Where does the values of c come form ? and how a,b,c are inter-related through the step size ?

a,b is relative to input,and i think the 'c' in ((a+b)%c,(a−b)%c,(b−a)%c,(−a−b)%c) is typo, correct is ((a+b)%k,(a−b)%k,(b−a)%k,(−a−b)%k)

Okay, can you please explain what exactly is c and how theoretically how it is related to a and b?. I mean what exactly c denotes? Also how come l is related to k and x? Can you please explain this? Thank You very much!

we denote the start place is A ，the first step place is B

then c is the shortest distance between A and B， and there are four situation for A and B

there are a cycle every k positions

Thank you very much for replying!.. But I still don't understand. what exactly is c? And why is l = kx+c.. how l is related to k and x? Thank you for your patience

and the four value of c is

## b-a

## (k-b)-a

## b-(k-a)

## (k-b)-(k-a)

for example k=5，n=3,a=1,b=2 the road show below (R is restaurants ,E is empty)

## REEEEREEEEREEEE

then c=2 below

## RaEbEREEEEREEEE (l=0*k+c)

## RaEEEREEbEREEEE (l=1*k+c)

## RaEEEREEEEREEbE (l=2*k+c)

c=-1 below

## REEbaREEEEREEEE (l=0*k+c)

## REEEaREEbEREEEE (l=1*k+c)

## REEEaREEEEREEbE (l=2*k+c)

c=-2 below

## REbEaREEEEREEEE (l=0*k+c)

## REEEaREbEEREEEE (l=1*k+c)

## REEEaREEEEREbEE (l=2*k+c)

c=1 below

## RabEEREEEEREEEE (l=0*k+c)

## RaEEEREbEEREEEE (l=1*k+c)

## RaEEEREEEEREbEE (l=2*k+c)

.

Thank You very much!!

But it looks like the possible values of a and b for c = 1 and -1, and for c = 2 and -2, are same (just flipped and rotated), which should not affect the answer.

I mean won't the answer be same for c = 1 and c = -1, and for c = 2 and c = -2 ?

yes，there are different ， you can caleculate the value of “l” and you would find the difference

Some one please explain div 2 B ?How to reach the solution and topic related to it to solve further problems in contest.

Can someone tell one example of solving lynyrd skynyrd

Hello, can someone go into details with problem U2?, and explain what's going on. I mean, some hints to get to the solution (perhaps some demonstration, too :)). thanks

The reason for changing the equation y = x^2 + bx + c to y — x^2 = bx + c, is that the points that form a parabola without a point inside, these will be positioned in the top part of the poligon and the top is also the upper hull of the convex hull, so using a convex hull algorithm that allow you get the upper hull part of the convex hull and then counting the points of this set — 1, you will get the number of segments that represents the number of parabolas that doesn't have points inside them.

You wrote too many wrong words,which add too much difficulty to me to understand.

I had learnt a way to solve problem D from _rqy（we can find him from the first page of this contest's standing）.His solution can solve the problem D in n·11 time . His solution is short . I wonder if it is also general . Why or why not ?

I was able to solve Queen (https://codeforces.com/contest/1143/problem/C) without any graph iterations, but instead with hashing and some if statements. https://codeforces.com/contest/1143/problem/C

code for C : 82203154

Here is a Much simpler Explaination of Problem 1143C — Queen — 1143C - Queen

Basically you have to remove those vertexes in accending order who don't Respect their Parent and also their immediate Children don't Respect them , so the catch is to think the other way , (ie) instead of thinking which vertex to remove , think which vertex will remain after removal , basically at the end only three types of vertexes remains —

1> The root Node

2> those who respect their ansistors

3> Parents of those who respect their ansistors

so just iterate over all the vertexes in O(n) and find the vertexes that remains as the end , and after that just print all the other vertexes in accending order . Here is my working Sol — 134407794