Привет, Codeforces!
В 11.03.2024 17:35 (Московское время) начнётся Codeforces Round 933 (Div. 3).
В этом раунде вам будет предложено 7 задач, посвященных приключениям неугомонного математика, программиста и просто забавного персонажа по имени Рудольф и его брата Бернарда и 2 часа 15 минут на их решение. Задачи подобраны по сложности так, чтобы составить интересное соревнование для участников с рейтингами до 1600. Однако все желающие, чей рейтинг 1600 и выше, могут зарегистрироваться на раунд вне конкурса.
Раунд пройдет по правилам образовательных раундов. Во время раунда задачи будут тестироваться на предварительных тестах, а после раунда будет 12-ти часовая фаза открытых взломов. Мы постарались сделать приличные тесты и тоже будем расстроены, если у многих решения будут падать на взломах после окончания раунда.
Штраф за неверную попытку в этом раунде будет равняться 10 минутам.
Напоминаем, что в таблицу официальных результатов попадут только достоверные участники третьего дивизиона. Это вынужденная мера для борьбы с неспортивным поведением. Для квалификации в качестве достоверного участника третьего дивизиона необходимо:
принять участие не менее чем в пяти рейтинговых раундах (и решить в каждом из них хотя бы одну задачу)
не иметь в рейтинге точку 1900 или выше.
Независимо от того являетесь вы достоверными участниками третьего дивизиона или нет, если ваш рейтинг менее 1600, то раунд для вас будет рейтинговым.
Составители задач этого раунда: vladmart, Sasha0738, t0rtik, Alexey_Parsh, Mordvin13, daha.002, Vladosiya и natalina.
Также большое спасибо:
MikeMirzayanov за системы Polygon и Codeforces и помощь в подготовке задач.
step_by_step, ashmelev за красное тестирование раунда.
KseniaShk, senjougaharin за жёлтое тестирование раунда.
dan_dolmatov, SashaT9, FBI, SpicyOctopus за синее тестирование раунда.
Gargera0, Matrosk1n, Alex_TULGU, Alenochka, gas за бирюзовое тестирование раунда.
Всем удачи!
UPD: Из-за технической сложности (см. пост https://codeforces.me/blog/entry/126654), временно доступны только следующие C++ компиляторы: C++14 (GCC 6-32) и C++17 (GCC 7-32).
UPD2: Разбор опубликован.
Auto comment: topic has been updated by natalina (previous revision, new revision, compare).
there is a lot of muslims , so the contest time is not appropriate in Ramadan
You need to properly set priorities
There are Muslims all over the world. You can't set a time that suits everyone
Or even should. With all respect to any religion, its Codeforces. Anyone is free to choose between personal plans and div3 contests, tho.
I agree. You can even have iftar and contest at the same time, like I do.
iam a muslim and i think this time of the day is good for me
yes
I wish experts could participate as rated too. I think the problems are still hard for me and really worth my time.
as i expert i agree as a newbie i dont
queen's round
Автокомментарий: текст был обновлен пользователем natalina (предыдущая версия, новая версия, сравнить).
Why not thank me for participating?
Excited and hopefully the problem's statement will be short and precise just like the announcement! <3
Grey testing ?
Grey testing?
Автокомментарий: текст был обновлен пользователем natalina (предыдущая версия, новая версия, сравнить).
Auto comment: topic has been updated by natalina (previous revision, new revision, compare).
RAMADAN contest starts 15:35UTC+2. Please
We are Muslims
Hmmm you didn't thank us lol
do not have a point of 1900 or higher in the rating.
So div 2 or div 3 ?It means your $$$\max \text{rating} < 1900$$$, not current rating.
date is wrong
Auto comment: topic has been updated by natalina (previous revision, new revision, compare).
Ramadan>contest
By the way thanks for the March 19's div3 its on the right time
why is there such a big gap (20 days) between 2 contests?? Will more contests be added in between?
UPD: Another contest added
Hopefully more contests gets added up in between.
What does trusted participant mean?
First contest during Ramadan!
I hope the tasks will be interesting
And Good Luck for every parcipicant!
Sorry Codeforces, I have to attend night-prayer at that time. so, No contest for me for the next 30 days.
спасибо за раунд
WOW! natalina,Sasha0738,vladmart wrote Codeforces Round 933 (Div. 3) and Codeforces Round 833 (Div. 3)
I hope to become specialist after this round.
And I hope to become expert after this round. Good luck to you!
And I hope to become expert after this round too. Good luck to all of us!
"adventures of a restless mathematician"
Mathforces Incoming. Brace yourselves
In the last few days, why Div3 contest has been hosted so frequently than before?
exciting to become an Expert!
GL everybody :)))
I hope to solve as many problems as possible :DD
Hope reach pupil after this round
Good luck for everyone !!!!
Good luck
as an old green all i can say is do not be afraid of losing rating
Why no thanks for gray writers/testers?
Negative delta, HERE WE GO
Negative delta, HERE WE GO
LETS GOOOOOOOOOOOOOOOOOOOOO
YEAHHHH
what does it means?
gl everyone :>
Can I use a chatbot during the exam? :))
thanks for information;
i hope i return the pupil on this div.3
Excited to give this contest on my birthday!!!
Happy Bday Mate !!!
Hope You'll get your gift as Pupil :)
HBD =D you will do great
happy birthday! hope you have a good time :)
If I become pupil during Ramadan, I will convert to Muslim from Hindu
Hope to solve only A. B TO G will be so hard.
Good luck!
RAMADAN mubark :)
Expert please
Rudolf and Bernard? Game theory on problem E?
I wish this contest i could improve the score ! because i have lose four times till now
I wish this contest i could improve the score ! because i have lose four times till now
Problem E is one of the worst problems i have ever read
skill issue
lol
Problem E is one of the greatest problems i have ever read!
But it literally is "Write simple greedy algorithm. Then run it 100 times. Then solve 800 rated problem on the results.". What is so great about it?
To me, it is a beautiful combination of dp, deque and prefix sum / sliding window.
If I say it like you:
A literally is "Write some bruteforce."
B literally is "Do some observation. Write some code to implement that."
C literally is "Check some special substring."
D literally is "Do some implementation with set."
F literally is "Do some observation. Write simple binary search."
G literally is "Too hard for me to solve in the contest."
Life literally is "Be born. Eat. Sleep. Solve some codeforces contests. Go to the grave."
Something may be literally is "something easy" to you, but "something meaningful" to others.
Boring problems, contest was able to be better
E has an unusual distance definition and it has not been presented in the russian version for more than half an hour
I was delayed by this unusual distance definition for ten minutes and decided to do problem B. :(
whole time i was thinking it's i — j + 1 :(
I took more than half an hour to figure out from the sample test cases that the distance is |i-j|-1 :(
Was added asap after someone asked about it. (Thanks udon1206)
I spent more time in B than problems E and F due to my stupid mistake.
same buddy, I really did stupid mistake on problem B that cost me 1 hr & 5 wrong submission with very high anxiety because of the fear of very big rating drop but thank god I solved it & at the last minute solved E as well that pushed my rank to under 1500 and my rating saved
How to do B?
see my logic
You can only subtract values from the 0th element by choosing index 1. Therefore you MUST choose index 1 a[i] times. After that you can treat the value at a position 1 as a new 0 positioned value. Therefore after running for loop every value must by 0, otherwise in is impossible.
bad B, C, D, E, F, G!!!!
B is harder than C I think. Maybe it's even harder than D
Binary search doesn't work for F ?
It does.
I got two questions —
Why did you binary search on (L+R)/2 ?
How did you know the optimal index will lie between [-10,10] of the index got from binary search ?
could u explain to me why BS works in that prob?
One no, but two do work.
250732405 Hopefully you can see how to adapt this to one binary search.
Ok, one could be enough, but two are faster
Btw, cool idea with sums, didn't think of using it here
My private Screencast.. A,B,C,D,E Video Solutions here: https://www.youtube.com/watch?v=hSNp4xnn9lc
Screencast with commentary (set video quality to HD to be able to read my code)
Problem G is nice.
E seem very hard (at least for me) are there other simple solutions not involving dp with segment tree or sparse table?
dp with multiset
My solution uses simple knapsack type dp with multiset.
nice i also thought in knapsack didn't know how to reduce the time complexity because i needed to search up too d element thanks alot
I used deque to find the smallest element in a segment.
i looked to your solution seem very nice and cleaver thanks
Use a deque. check this: https://www.youtube.com/watch?v=hSNp4xnn9lc&t=3429s&pp=ygUeY29kZWZvcmNlcyByb3VuZCA5MzMgKGRpdi4gMykg
ok i will watch it later thanks alot
Dp with priority_queue
thanks but as i understood from the above comments we can replace it with a deque following two pointer approach (utilizing the fact that the further points will have the least cost) that seem more efficient
DP optimization with monotone-queue is ok
ok thanks
Can someone explain the 4th test case in problem D.
Like how is it 2 3 5 and not 1 2 3 5?
Initially ball is with player 1.
Next, it goes to player 5.
Next, it may go to either 1 or 4.
Finally it may be with 2 or 5 (from 1), or 3 or 5(from 4).
RIP all who got WA on test 2 in F :(
I don't know which case I was missing. Can anyone debug my submission : https://codeforces.me/contest/1941/submission/250809941
repeat the same steps for req+1 and req — 1 also
Tried already in contest. Tried now again still getting WA
Got trolled by problem F (2 wrong submissions) because
(a[i] + a[i+1]) / 2
overflowsint
:(Let this be a lesson to use
std::midpoint
... (or in Java,a[i] + (a[i+1] - a[i]) / 2
)or other lesson is to generally use long long.
I used long long yet no luck :(
Or you can use
left + (right-left) /2
is the same as(right+left) /2
Until you get a WA because you're using
int
and(right + left) > MAX_INT
I could only get TLA on test 3 for F, which trick was needed to reduce complexity ? FFT ?
Imagine FFT problem in a Div3 contest...
My solution was to take the two problems with largest imbalance, and iterate over d and f to find the best new problem, I don't know how to speed that up
Sort d and f then simply use binary search.
For problem G I made a simple Dijkstra where the cost is determined by the size of a std::set which contains all the colors of the edges I've been through. Does anyone have an idea why it doesn't pass Test 3?
You can visit node from different colors, was debugging it for half an hour. Cool problem, fixed solution
Thanks!
well u can make a visited of map for {color,node} it wont give tle, jiganly did the same
Excuse me guys, but who can help me find mistake in D?
My answer is different with correct answer in only one number, and I coulnd't find mistake.
Here is my code:
I will be very grateful to anyone who offers a helping hand
you aren't changing el while traversing
yeah, thank you.
Now I understand that my code was completely wrong, and I really choked in that contest...
Can anyone give me some insights over the Solution of Problem — F Rudolf and Imbalance
Easy explanation for F :
Firstly, you can binary search over your answer (you can easily observe monotonicity)
Let's check if $$$X$$$ can be our answer or not.
$$$-$$$$$$>$$$ If there is no index such that $$$a_{i+1}$$$ $$$-$$$ $$$a_i$$$ $$$>$$$ $$$X$$$, then surely $$$X$$$ can be our answer.
$$$-$$$$$$>$$$ If there are more than 1 indexes such that $$$a_{i+1}$$$ $$$-$$$ $$$a_i$$$ $$$>$$$ $$$X$$$, clearly $$$X$$$ can't be our answer.
$$$-$$$$$$>$$$ Else let's say $$$a_{i+1}$$$ $$$-$$$ $$$a_i$$$ $$$>$$$ $$$X$$$ for some $$$i$$$, what should be the complexity of the extra problem?
Let's say the complexity is $$$C$$$, then $$$C \leq a_i + X$$$ and $$$C \geq a_{i+1} - X$$$. Thus, we have a range $$$[$$$$$$a_{i+1} - X$$$, $$$a_i + X$$$ $$$]$$$.
Lastly, we need to check if we could make a problem with complexity in the given range, say $$$[$$$ $$$L$$$ , $$$R$$$ $$$]$$$, for that, you can simply iterate over $$$d$$$ or $$$f$$$ and use set kind of data structure for searching a possible answer.
Is there anyone ignore the "consecutive" in problem E like me ._.
YEpp!! truly artful, WA me twice!((
me too
Hello Sensei! How are you my G?
I skipped E as F seemed easier yet failed on test2 , I have no clue where.
here's my submission — click here
The code is clean, any help appreciated
G was a nice problem
Can't help but point out that C has more ACs than B tho..
Would you please provide a hint regarding your solution to problem G for us mere mortals? Please...
You can create a new graph containing all the nodes and all the colors. On this graph, two nodes have a connecting edge if:
and
It's not hard to see that the BFS distance on this new graph is exactly twice the answer :) I don't have a rigorous proof though
The amount of nodes and edges on this new graph cannot be more than O(n+m) so it will pass in the TL.
Wow! Very nice solution indeed! Thank you very much )))
what is logic for ** Problem G** .
WT compilation error !!
Can't wait to become Expert!
FINALLY!
I couldn't implement it in time, but I just wanted to make sure my strategy is correct for E.
Let row_ans[r] represent the minimum cost for some row. We can use prefix sums to calculate some contiguous row_ans and choose the minimum in O(n-k) time. The minimum will be the answer.
As for calculating row_ans[r], we use dp to calculate the minimum cost from dp[r][c] to dp[r][m]. row_ans[r] = dp[r][1].
Simmply apply dfs over dp[r][c] and check the minimum cost between dp[r][c] and dp[r][c+1], dp[r][c+2], ..., dp[r][c+d+1].
Is there anything more/wrong?
This would have time complexity of O(nmd) in worst case which would TLE.
Seems like "intended" solution. It's $$$\mathcal{O}(nmd)$$$ on hindsight and with bruteforce approach, but monotone-queue trick can help reducing the $$$d$$$ factor.
someone tell the approach of PROBLEM D
dp
using sets, O(2*n*m) 250727881
Nice solution, I like the way to simulate recursion iteratively. I think I sould start taking care of this thing.
oh this is cool i did was bfs + dp
just brute force using sets and length of set will never exceed n
brute force/dp
Again missed cyan by 2 points. Rip my life
Again missed cyan by 2 points. Rip my life
(haven't given this contest but) wanted to ask which topics do i need to learn to solve div 3/4's F and g?
I tried F instead of E as seemed easier but failed on test2.
here's the submission (code is clean)
any help is appreciated.
Why do you use upper_bound instead of lower_bound?
lower_bound can also be used, implementation would be little different. I used upper as it felt comfortable
What about when cur diff > second max diff ?
Also op1 and op2 can exceed (int) because a[i] is up to 2e9.
You can check my code it's the same 250750511.
cur diff > second max diff !!! ohho damn, How did I even miss it!!!!
Thanks for pointing out,
int is not an issue, you can see on top i have #define int long long :)
Man It got accepted, how in the world i didn't notice I calculated second max incorrectly, DAMN!!!! Its suicide for me :(
It happens bro :)
yeah, not first time, but after a long time though :p
"Note that the penalty for the wrong submission in this round is 10 minutes." Does it mean I can't submit for the next 10 min? or is it anything else?
You can submit for the next 10 minutes.
It means that your penalty will be increased by 10 once you submit accepted code for that problem.
if the code got accepted at t=t min then the website registers it as t=t+10 min? am I correct? and also what happens if I don't submit any code later?
time = ok_submit_time + 10 * err_submissions_count
if you dont submit penalty not addedOk thanks
How to do F??Any hints??
We must reduce the longest distance. So just get the mid between ai and ai+1, where ai+1 — ai = longest. So we have sorted f and d. For every d we with binary search find the best f ( and we check all values from the lower bound we find -5 to +5 )
https://codeforces.me/contest/1941/submission/250805698
Is there anyway to solve problem E with memoization? Just curious.
It was not possible, beause the overall complexity would have been d*n*m. I used a multiset in order to memorize information about the d+1 previous supports sorted in ascending order
Problem A — Simple sort and binary search.
Problem B — Note that 1st element can only be modified by operations on element 2. Accordingly iterate over the array, simulate the operations on each, and check the last 2 elements for 0. In any case, element value goes < 0, answer is not possible.
Problem C — Simple substring search. First, count for
mapie
(requires only 1 operation). Then check for rest of the possiblities (pie
,map
).Problem D — Let
dp(i,j)
represents whether all the m turns result in playerj
having the ball, if we are at movei
and currently playerj
has the ball. Do a simple recurive dp, and final answer is the count ofdp[i][m] == 1
over alli
players.Problem E — For each row, let
dp(i)
represent the min. cost to place supports, such that we place a support ata[row][j]
.dp(i)
can be calculated as minj
fromi-d-1
toi-1
. Use segment tree to speed up this calculation. For every row, cost for that isdp(m)
. Final answer is a subarray of size k with minimum sum, that can be done using simple prefix sums.Guys fft tag for B wtf?
Simple solution for B using FFT:
Proof that it works: https://codeforces.me/contest/1941/submission/250827117
just a simple loop and ac idk why fft tag needed
Admit it, who solved B using fft?
how is it possible?
Does hacking points contribute in rating?
**Dear Codeforces Community ** Please can anyone tell me why this code give wa on test 2 https://codeforces.me/contest/1941/submission/250799602
and when i just update the vector size with n+1 and m+1 then it gives me tle on test 6
https://codeforces.me/contest/1941/submission/250822673
the difference between both the codes is just that instead of using vector of size [n][m] i took [n+1][m+1]??
WA -> you are not considering when j == m in you fun TLE -> it's clear n * m * d which in worst case n * m * m
ohk thnx got it
Someone Please answer this python related question regarding problem D. For the input details about m throws, if I take the input as s = input().split(), dist,dir = int(s[0]),s[1] it gets accepted. But during the contest I took it as s = input().rstrip() ,dist,dir = int(s[0]),s[2] (I thought s[1] is the white space?), it gives WA on test 3. Everything else in both the codes is the same. Why is this the case? Can't believe I did not solve a problem because of this :(
Because there can be lines like
10 ?
or100 ?
depending on the value of $$$n$$$, you need first split the line by a space and then parse $$$r_i$$$.Thanks. Really bad mistake:(
I tried D using recursion (gave tle ) then applied dp, here is my code 250762239. Can someone pls tell why it gave wa ?
It's always one issue or the other with codeforces, always one technical issue of the other. This website is beginning to disgust me
Similar problems : G and arc061_c
815. Bus Routes
For BOJ users: https://www.acmicpc.net/problem/2021
How to write tabulation for the following solution to Problem D: 250808686. How do you approach DP in such scenarios?
is there penalty for failed hacks in div 3?
No
For problem D. I implemented it like iterative BFS and fir that I created a DP table of size n*m
https://codeforces.me/contest/1941/submission/250738804
Somebody please tell me if there is a penalty for failed hacking attempt here in this contest.
No, hacking does not affect your score in div3 contests.
ok thanks
Isn't it possible to have editorials ready even before contests? Just asking because you hardly see editorials for contest right after contest's ends and I wonder why it's like that. And the persistence of technical issues on codeforces is becoming something else. It's always one thing or the other.
I strongly believe there is something wrong with the Judge for Problem F. This is tourist's submission for F and this is Valee's for F.
I gave the same input to both on ideone. Valee's output doesn't match with the one from tourist. Line 17 of both submissions doesn't match.
So, I submitted this input to hack Valee's submission. It says unsuccessful hack.
I don't understand if I'm doing anything wrong or if the checker is broken.
Code has undefined behaviour due to out-of-bound access-
This should be —
Different compilers behave differently when undefined behaviour happens. If it's working on the judge compiler, I doubt you can hack this submission with the compiler used for this submission.
Nice contest. E>F (at least I couldn't come up with a non dp solution for E) F was easier, never using ternary search again tho
Auto comment: topic has been updated by vladmart (previous revision, new revision, compare).
Can you provide 3rd test? My solution got WA on 3071st testcase, but when testing this testcase alone answer is correct. My solution doesn't has any global variables 250835513
Nevermind, I found it myself. Thank you
Автокомментарий: текст был обновлен пользователем vladmart (предыдущая версия, новая версия, сравнить).
Hours and hours trying to solve problem E and the only thing that I discoverd that I'm really bad at dp :))
Hours and hours trying to solve problem E and the only thing that I discoverd that I'm really bad at dp :))
I think there might be an issue with the way codeforces is handling problem B. A lot of people have written solutions which should give a tle and they take forever to run on my local machine. However when i try running hacks here, all hacks fail. In fact there is not a single successful hack in problem B. One such example of a tle solution is https://codeforces.me/contest/1941/submission/250718192
Please tell me if i am missing something and why none of the hacks give tle on these solutions even though they do on my local machine
The same goes with Problem F. I don't understand what's wrong with Codeforces Checker.
It literally says that the time taken is zero. That is not even possible. It is taking forever to run on my machine. In fact, at first glance it is clear that we cannot subtract the values with 1 each time since the constraint is 1e9. I dont know what is up here today. So many solutions would fail if only they would allow hacks on these brute force solutions.
Btw, did you try passing
-O2
flag?What does that mean?
It's a compiler optimisation flag. You can search about it online.
Hey bro!!
Nice to see you back in cf.
Hey Ankan, Thanks a lot! It's great to be back in CF. I wish I'd reach 1900 this year.
Btw, what do you feel about my comment? :D
Surely the solution looks wrong, but it seems the compiler does some (surprising) optimizations that make the code run fast enough. It is known that compilers sometimes do optimizations like this (like making a recursion into a loop).
I could confirm that the code runs fast enough in my local environment by giving the
-O2
flag tog++
.Oh my god that should be illegal
Let's wait till system testing finishes.
I dont think system testing would change anything here
Ok got it Thanks
When will solutions be published?
https://codeforces.me/contest/1941/submission/250836422 Can anyone Give me test case that will give wrong answer according to my code
I think its the test case 1 5 1
Got it
tell me how i can see the rating of a problem?
The set of tasks is a bit unbalanced, B is more difficult C and D
I think the greedy strategy in B is difficult to prove. Maybe that's why.
I thought about it like this: If I'm forced to start at index
a2
, then I must be able to make indexa1
equal to zero. so loop starting at second element and If at any time while setting indexai-1
to zero, any of the other indices, which areai
andai+1
, becomes negative, then it's a failure.There is prove (why it's diffucult?):
Idk how you attempted B, but B and C have similar solutions.
Why is this test case of problem 2 a "NO" The array should act like this
[5, 6, 0, 2, 3, 0] to
[0, -4, -5, 2, 3, 0] to
[0, 0, 3, 6, 3, 0] to
[0, 0, 0, 0, 0, 0]
Making the answer YES because you can turn the whole array into Zeros.
how did you get third array from second array? some values have increased I dont see how it is legal move
I got confused by the way I defined how the operation goes
the way I did it
is that ai = ai — 2* ai-1
the array increase more if the ai was negative, but the way the operation is defined makes that impossible. I had a brain fart!
I am sorry Done only A. B is so hard
Plz make upcoming Div3 B's easier.
Video Editorial for problem E (Rudolf and K Bridges) : Audio (Hindi)
YOUTUBE EDITORIAL LINK---CLICK here
This solutionfor G naturally came to my mind but my I THOUGHT IT WOULD GIVE TLE.
can someone explain why its not getting TLE ? as per my understanding even if the logic is correct , if a node is connected to C different colored edges , this solution would consider that node C times and also once that node would come as minimal it the inner loop will work for E ( no of edges ) times , so according to my understanding worst case should be C * E for minimal output for a single node itself .
And it should turn out to be TLE , if you think the time complexity is fine can anyone explain why ?
This solution for G naturally came to my mind but my I THOUGHT IT WOULD GIVE TLE. can someone explain why its not getting TLE ? as per my understanding even if the logic is correct , if a node is connected to C different colored edges , this solution would consider that node C times and also once that node would come as minimal it the inner loop will work for E ( no of edges ) times , so according to my understanding worst case should be C * E for minimal output for a single node itself . And it should turn out to be TLE , if you think the time complexity is fine can anyone explain why ?
Now it really get a TLE. It's hacked.
This was a great contest! Great job, problem setters and organizers!
problem c was the easiest but I had to look on google to look how to use function find in order to start from a specific index and not from the beginning
can someone explain how this is working in time 250679099
C++ should be considered cheating for this :) In Rust its TLE
So the problem is with codeforces servers?
Wait for system testing.
Here is assembly output of this loop:
As you can see the inner loop is transformed into 2 SUB commands (one for each element), really cool
Nope, it's due to compiler optimizations. Apparently the compiler rolls the innermost loop into constant-time operations. Optimizations like this do happen sometimes.
I tried rust -O3, and it generates exactly the same thing:
Not sure why it's TLE on codeforces
is there any problem similar to A but with higher constrain like arrays size can be up to 1e5 ?
It was one of the best Div.3 ever. Thanks!
Can someone explain the solution to E.
Ok.
Is there a reason a_i <= 2*10^9 in F except to screw over participants with overflow...
Why I've Rated compete but it didn't Rated?
same with me
why it is showing unrated contest in my profile and also my points didn't increased?
In final scoring of this contest , i have penalty of 125 . how is this calculated ? can someone explain me this.
it's the ICPC rules. The total penalty is the sum of the time you spent on your solved problems, which is 13+112(1:52)=125
Thanks for the reply , now i understood how it's calculated.
Now since hacking phase is finished, then can someone tell me why this code is not a tle 250786266?
Can anyone give me explanation over the Solution of Problem — G. Rudolf and Subway
Just build a graph with extra nodes for each color and find shortest path.
Edit: You can see this for reference.
good thank you tester
So many solutions of G hacked.
Hopefully I'm not the only one doing 0-1 BFS on G ._.
Submitted right after system test initiation so I guess it passed, but I don't trust my messy codes....
how do you apply 0-1 BFS on G ??
(A bit complex though, I tend to overthink stuff.)
Re-map the entire graph: each vertex of the new graph has the form of $$$(v, c)$$$, with $$$v$$$ is the original vertex, and $$$c$$$ is the color. This is for maintaining the current color in the trip.
Edge $$$(u, v, c)$$$ in original graph becomes $$$((u, c), (v, c))$$$, and has weight $$$0$$$ (color doesn't changed — if wanna switch, see below).
For an original vertex $$$v$$$, all vertices $$$(v, i)$$$ are connected to each other through weight-$$$1$$$ edges (acting as interlude steps if wanting to use an edge of new color).
From here, the core idea for 0-1 BFS is complete.
Answer will be $$$min \space dist((b, i), (e, j)) + 1$$$ (the $$$dist$$$ denotes the number of color changes, so add $$$1$$$ for the first color).
If $$$b = e$$$, answer = $$$0$$$ — this case should be trivially handled first.
A few touches are required:
map
(or any BST-based map-like data structure) can help with that.My code, for references (but as warned, it was way more than messy): 250907436
I don't know why I made
ucHash
andvcHash
instead of(u, c)
and(v, c)
, somehow I was afraid of unsupported hash despite clearly using BST-based data structure. Things would be triply simpler without that.is this contest rated? No rating updates till now?
Is this contest rated? No rating changes till now?
Yes please, clarify this. Same doubt for me as well. It is supposed to be rated no? But it shows under unrated contests.
its updated and i missed specialist again by 3 points. RIP
Well i became now:)
My rating is 1655 but i'm still a specialist . WHY ?
Same here
Minor UI glitch post rating change. https://imgur.com/a/mw2YwLz
Thanks authors for this great tournament!
Dear CodeForces,
I was accused of cheating in this round, which is not true at all. The task was too easy for me to solve, so I don't understand why you skipped me. Please take a look and explain to me in more detail because I have nothing to do with the people I am accused of.
Sincerely,
_Aang
Hello MikeMirzayanov, I received a message saying my solution to 1941E - Rudolf and k Bridges submission 250807913 and singhsoojal solution 250811342 to the problem are quite the same. And thus, we both have been disqualified.
Both Solutions might be very close, but we don't share the same exact code. I didn't share my solution anywhere. We also don't know each others, so we don't have any way to communication.
I think it's unfair to accuse people for cheating just for thinking in the same way and writing codes that are similar but not the same.
Your efforts for making the checker of copying are appreciated but I just figured out it needs some more work.
Thanks for the great round and problems!
Can anyone explain why its giving error in testcase 4
Can anyone explain why its giving error in testcase 4 solution
Your solution is incorrect. Maybe you understood the problem wrong.
Try this test case:
Answer should be 0. Your code giving 1.
Oo got it thankyou.
Your solution 250774158 for the problem 1941F significantly coincides with solutions harshsharma2024/250774158, TLExceeded/250796278, codingishard8/250800925, Fusu/250810532, 2.16/250811985.
Here is my code : Accepted after getting wrong answer with this code : Wrong answer and after 3 minutes from getting the wrong answer. I swear that I didn't cheat in the contest, and all the codes in this contest were written by only me and I didn't use any online IDE.
And I didn't like this Plagiarism Mistake at all, not fair facing like these obstacles to get a new rate, specially when I am too close to the new rate.
MikeMirzayanov I've compared the two solution and I think the similarity between them is normal and many user could do such a solution.
Its very funny because a problem from the County Phase of the OI in Romania was similar to the G in this round, and it helped me a lot upsolving this round in the week prior to the contest!
Anyway, interesting problems and round!
Contest Was Super Fun
why get tle problem number b. this is my solution
include <bits/stdc++.h>
using namespace std;
define ll long long int
void solve() { long long int n; cin>>n; vectorv(n); for(long long int i=0;i<n;i++) { cin>>v[i]; }
}
int main() { int t; cin >> t; while (t--) { solve(); } return 0; }