Hello, Codeforces!
We are pleased to invite you to IAEPC Preliminary Contest (Codeforces Round 999, Div. 1 + Div. 2).
The Preliminary Contest is a rated contest for Div. 1 + Div. 2, taking place on Jan/20/2025 17:35 (Moscow time). The problems for this round were prepared by jqdai0815 and orzdevinwang.
The top 50 contestants at least 18 years old will be invited to participate in the onsite finals. We will cover the travel expenses for onsite contestants. The finals are scheduled to take place in CUHK from February 27 to March 2, 2025.
The prizes for first place, second place, and third place of the onsite final are 10000, 5000, and 3000 USD.
More prizes and detailed information will be announced soon. You can visit International AI Elite Programming Contest for information.
We would like to thank:
- MikeMirzayanov for the Codeforces and Polygon platforms.
- Sugar_fan for coordinating the round.
- Kevin114514, djq_cpp, and JohnVictor for discussing about problems.
- Alexdat2000 for translating the problems into Russian.
- All of our testers: Tobo, A_G, Retired_shstyle, efishel, MeIoN_is_UMP45, el_programador, _istil, StarSilk, Cyber, xish, andreumat, GoogleBot, Tekor, SkyWave2022, LamaSalah, Error_Yuan, becaido, EzikBro, _LeMur_, MouadDidNotFail, JorgeIbanez.
- And You for participating!
The score distribution is as follows: $$$500 - 1000 - 1500 - 1500 - 2000 - (2000+2000) - 3000 - (3000+5000) - 4500$$$.
We hope you enjoy this round. Good luck and have fun!
UPD 1: Editorial
UPD 2: Congratulations to the top 10!
- jiangly (Congratulations on being jiangly!!!)
- tourist
- gamegame
- Benq
- ecnerwala
- arvindf232
- ksun48
- Egor
- potato167
- Um_nik (Congratulations on being the only one to solve Problem I!!!)
For the top 50 contestants, we will contact you soon for onsite participation.
Auto comment: topic has been updated by jqdai0815 (previous revision, new revision, compare).
The onsite finals are during EUC :(
It's also clash with ICPC Asia Pacific Championship...
As it stands now it seems like $$$\geq 4$$$ of the top 50 are affected by the clashes... Petr and Egor are both EUC judges (I don't know how stringent the requirements are for being present at EUC, but it seems at least really unfortunate), while (correct me if I am wrong) tkacper and me are both contestants at the EUC.
Since I am also a participant in APC, I am hoping for a change in the competition schedule.
Rooting for jiangly to reach 4000!!
If he reach 4000, the level will be called Jiangly or Tourist?
It would be cool if everyone got their nickname as a title
Level:Jiangly
Highest Rating:tourist
jiangly! You can do it! break a leg!
My Goal for This Contest
I'm hoping to solve at least 2 problems in this Div. 2 contest!
jqdai0815 and orzdevinwang ORZ I'm excited to see their problems !
Nice to see a new competition with onsite finals, but it doesn't seem like a good idea to set the qualification round for weekday.
/jqdai
The round for jiangly to reach tourist!
The round where jiangly becomes tourist?
Congratulations for putting a Div. 1 + Div. 2 round on monday
jiangly might hit tourist
Person becomes enlightened version of themself.
So, jiangly will become jiangly
Really Curious about it !!
jiangly will be jiangly
then Jiangly
The prizes are not worth it
Yes!
will jiangly hit 4000??!
If you want to host somehow important round, like a qualifying contest for something, isn’t it generally better to host it during a weekend?
Contest 999! Penultimate contest to 1000!
Wow, I didn't know there has been $$$4.02387260077\times 10^{2564}$$$ codeforces rounds?
wth! how you calculated that?
The values are available on many sites on the internet.
like this https://zeptomath.com/calculators/factorial.php?number=999
For casual users just participating will this be a rated contest?
Yes, you will be rated. Div1+2 will be rated for everyone. (unless
unrated participation
is applicable)As a first-time tester, I tasted this round
cool zak round!
If I would be system admin, I would swap round #999 with round #1000.
I would make round #1000 a grand round ( Div 1 + 2 ). because its a big milestone.
Rooting for jiangly :)
I made a mistake.
And Excellent contest,but I was so slow to solve the problem.
The top 50 contestants at least 18 years old will be invited to participate in the onsite finals.
unnecessary "&&" maybe lol
This contest will rated or not ?
Ya, it'll be rated
Score Distribution ??
Score distribution?
jiangly will be the new title for 4000
where is the score distribution ? and New rank jiangly will be adedd ?
Auto comment: topic has been updated by jqdai0815 (previous revision, new revision, compare).
I think, there must be problems on probability since it will be an AI based round!
So who is Jiangqi Dai, jqdai0815, djq_cpp or djq_fpc?
djq_cpp
score distribution ?
All eyes on jiangly!
The score distribution will be announced soon. When is 'soon'?
What about Score Distribution?
Auto comment: topic has been updated by jqdai0815 (previous revision, new revision, compare).
9 problems, 2 subtasks with one task having a score of 8000, SCARY !!
Codeforces Round (999) just proved that the scoring system can make or break a contest. What a round!
The first rated contest has this number of problem ever.
The testing of the previous round is not complete yet (and not even close). Is it going to affect this round?
Perhaps more than half of the top 50 participants will be unber 18 :(
Why can only people over 18 go to the final?
Good luck all :D
Thanks!
Is this the first 11-problem CodeForces round in history?
CodeTon Round 9
I was waiting for score distribution. Finally.
jiangly 4000+?
you called it
Hi, in the contest I submitted problem D and passed pretest but I wasn't really sure if my submission will pass sys test, and I change map to gp_hash_table and resubmited 2 times. To my suprise I got -100 points. Can anyone tell me why did I get -100 points and if my first submission get accepted will I get my 100 points back?
it was written above "Submit" button
"Be careful: there is 50 points penalty for submission which fails the pretests or resubmission"
Damn i didn't see that, I used to resubmit in div 3 and thought div 2 was the same, thanks for the clarification.
Jiangly becomes a Tourist in the last minute!
jiangly Is now Jiangly....
jiangly 4000+ WOW
Seems like jiangly 4K
Jiangly clutch >>
Orzz!!!! jiangly is Goated... Highest ever codeforces rating incoming..
jiangly did it !!!!!
Problem D: 1654C - Alice and the Cake
jiangly orzzz
Thank you for the contest! The problems were really interesting. Best Codeforces round in a while.
orz!!!! jiangly
in the end battle was really between jiangly and tourist
Incredible round. Can't wait to upsolve
Jiangly's comeback is insane! Congratz
How were we supposed to solve C.
i thought about it as dp previous and current of size n*2. previous[i][0] tells the number of ways when i number of liars and the current guy speaks truth. vice versa
First iterate over whole array and see that whenever arr[i] > i the person is telling lie. Because there are no enough people on his left side. Then apply dp.
3d DP. dp[currentIndex][prevNumberOfLiars][isPrevIdxHonest]
This might be the most cursed optimization I did for any dp problem.
I found the dp to be this:
And then some steps later:
:) I used map of vectors directly
2*n dp. If ith person is liar, then definitely i -1th person is honest. If ith person is honest, then two cases: i-1th person is liar (then i-2th person must be honest, and this also means that a[i] == a[i – 2] + 1 must be true), or i-1th person is honest (then a[i] == a[I – 1] must be true). Now make transitions accordingly. https://codeforces.net/contest/2061/submission/302092916
best contst in recent times, felt very very good after competing
speedforces
Could someone share some ideas for problem G? I think this problem is quite interesting, even though I couldn't figure out the solution during the contest.
Problem C is cool
Can anyone help me why I got WA. THanks so much in advance https://codeforces.net/contest/2061/submission/302128283
why my brutefroces soultion doesen't work on E :(
302125235
So many solutions got FST on B :/
I failed in a = {1,5,5,6}
I think I'm going back to newbie bc of this lol. I solved A after B, making this fatal.
For some reason, there was no pretest in case the bases of the hypotenuse lie on opposite sides of its equal edges (for example, the 11th system test 1 2 2 4).
One of the best contests recently, I liked problem C but I think it's harder than D and F1 (I assume, still waiting for the system testing torture to be over to confirm whether my solution is correct or not)
But didn't like B much, had to search the entire internet to know what lengths can make an isosceles trapezoid...
I swear I might just be getting dumber as more contests come and go...
Any chance finals can be rescheduled to avoid conflict with both European and Asia Pacific ICPC Finals?
B >>>>>>>>>>>>> F1
In Problem B, my solution is O(nlogn), but it still gave TLE on system testing: Please help : https://codeforces.net/contest/2061/submission/302060527
I think multiset.count is not O(logN) but O(# elements to be counted)
It is O(logN + # elements to be counted)
lesson learned:Never attend chinese round
Congrats jiangly on becoming jiangly :)
But max is still showing tourist. May be they will fix it later.
Interesting round!
Question about onsite: Is it right that it is okay to just participate in this round and then wait? I couldn't find any registration on the IAEPC website.
Any idea why this code for B failed? I looked for everything but couldn't find the issue. Am i missing something? https://codeforces.net/contest/2061/submission/302078148
1 5 8 10 10 12 100
look at this testcase
Thanks dude.
if(i-2>=0 && prefix[i-2]!=-1)
should be replaced withif(i-2>=0 && prefix[i-2]!=-1 && arr[prefix[i-2]+1] - arr[prefix[i-2]] < 2*arr[i])
, andelse if(i+1<n && suffix[i+1]!=-1)
withelse if(i+1<n && suffix[i+1]!=-1 && arr[suffix[i+1]+1] - arr[suffix[i+1]] < 2*arr[i])
. This way, even if the minimum differenve pair is not valid, you will still check the other options.I just clocked it. Thanks a lot. gotta stop making such mistakes :(
Everyone makes such mistakes all the time. Don't worry, with practice you'll make them less often and get much better at spotting them.
Thank you for the round! And could you please clarify what is included under 'travel expenses'? Does it cover round-trip flights, accommodation, meals, and other related costs?
Congratulations!! jiangly, All eyes on jiangly ❤️
why rating is not changing?
i have submitted A and accepted also
what are sort?
can anyone tell where this failed Problem -B? https://codeforces.net/contest/2061/submission/302086865
Just a quick information:
System testing for Codeforces Round 998 (Div. 3) is still running, so we need to wait for a little more before we can get rating update one by one.
Edit: lol, I guess we'll get a rollback to apply it later.
Screencast of me solving this contest in Rust. No camera as it was blocked by some app
My solution shows pretest passed after the system testing has ended. It neither shows wrong answer nor accepted. Why is this issue happening?
Finally jiangly has surpassed tourist. Congrats
Auto comment: topic has been updated by jqdai0815 (previous revision, new revision, compare).
Auto comment: topic has been updated by jqdai0815 (previous revision, new revision, compare).
If v[0] = 0 isn’t it obvious that he is telling truth as nobody on the left?
You have to count number of ways, so You can also assume that he is telling lie
Thanks for the very nice round!
When trying to solve H2, I realized that my solution for H1 fails on this testcase:
Essentially, I was processing the connected components completely independently.
I was not sure if I should resubmit, as we often have pretests equal to systests these days. However, I convinced myself that there should definitely be a case in systests that verifies something that every reference solution needs to have an if for, and resubmitted. It turns out pretests were equal to systests in this problem as well :)
(It seems that all solutions of the top participants on the scoreboard handle this correctly, only 1 out of 12 accepted submissions fails this case)
Auto comment: topic has been updated by jqdai0815 (previous revision, new revision, compare).
Tourist -> <-
How did this round's rating come before the previous round? Won't it require recalculation once the last round is done?
Congratulations jiangly for crossing 4000 rating.
wtf jiangly became Tourist ?
Now its been fixed
"In C, I saw a recursive DP solution where cnt (the number of liars up to i) was passed as an argument. However, cnt was not used as a state in the DP table. Why is this? There can be multiple possibilities for a particular dp[i][prev]. Could someone explain?"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ int dp[200001][2]; int n; vectorv; int ok(int i , int prev , int cnt){ if(i == n){ return 1; } int ans = 0; if(dp[i][prev] != -1 ){ return dp[i][prev]; } if(v[i] == cnt){
ans = (ans+ok(i+1,0,cnt))%MOD; } if(prev == 0){ ans = (ans + ok(i+1,1,cnt+1))%MOD ; } dp[i][prev] = ans; return ans;
} void solve(){ cin >> n; v.resize(n); loop(i,n,1){ cin >> v[i]; }
memset(dp,-1,sizeof(dp));
int ans = ok(0,0,0); cout << ans << "\n";
} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thanks for the round. It had some nice problems, especially D and G (and to some extent F1) among the ones i solved anyways.
On the other hand, BC werent that great (but thankfully didnt ruin my experience). I think easy problems like D with a simple observation are preferable to yet another "code a casework dp"
nvm
nvm
can someone plz help in finding the counter test case of my submission for Problem B
It fails on test file 18, test case 149.
Congratulations to jiangly for achieving the highest-ever rating on Codeforces!
Another fun experience in this contest was that when I looked at problem H2, it had this notification at the top: "The problem statement has recently been changed. View the changes."
And when I clicked on "View the changes", it showed me that the sample output has changed, even with a nice diff:
Since there was no announcement, my theory is that this was an accidental leak of the reference solution output. What the reference solution seems to do is to just keep moving there and back in the beginning and at the end (probably using the matchings we find in H1), and then each token at some point just moves without stopping from the starting to the ending location. Still not sure how to complete this to a working solution, though :)
Hmm, I think this is not the leak of MCS output. The authors intentionally changed the output at the last minute before the contest.
I loved problem D!
Why the Hell is Jiangly given the rank of "Tourist"? It should be that, anyone who crosses 4000 must have the rank same as their handle. Also, heartiest Congrats to Jiangly for making it.
Now jiangly became jiangly
Still, in Jiangly's profile, it is showing Max. Tourist, 4039
Now its been fixed
Problem G, I — amazing! Other problems were great too, I liked everything except A. Thanks for an awesome round!
All the div1+2 giving me negative deltas... But I feel this contest was really good, actually worth it anyway. Upsolved both C and D.
Thanks for the great contest.
Can someone please help me finding what is wrong with my submission 302299299 in problem E div2. I tried for hours to catch the problem, but I could not, then I read the tutorial and recognized that my solution is similar (maybe I am wrong in this). Is the code wrong or the idea is wrong?
If everyone who scores over 4000 can get their username as a level name, it would be cool
hii Codeforces, please check them out Lakshya29J for problem D of this round, his solution matches from one of the solution posted in the a video in youtube.
also checkout Aryan_0718 for both problem C and Problem D, these solutions exactly matches the one made public on Youtube and these solutions also matches.
I found many users submitting the exact same solutions and then saw the exact same solutions on Youtube.
what are the game?
I have question ,why my rating was reset