By BledDest, history, 3 weeks ago,

Hello, Codeforces!

First and foremost, we would like to say a massive thank you to everyone who entered and submitted their answers to the first, second, third, and fourth Kotlin Heroes competitions which were held previously: Episode 1, Episode 2, Episode 3 and Episode 4.

Ready to challenge yourself to do better? The Kotlin Heroes 5: ICPC Round competition will be hosted on the Codeforces platform on Nov/12/2020 17:35 (Moscow time). The contest will last 2 hours 30 minutes and will feature a set of problems from simple ones, designed to be solvable by anyone, to hard ones, to make it interesting for seasoned competitive programmers.

Prizes:

Top three winners will get prizes of $512,$256, and $128 respectively, top 50 will win a Kotlin Heroes t-shirt and an exclusive Kotlin sticker, competitors solving at least one problem will enter into a draw for one of 50 Kotlin Heroes t-shirts. Everyone who takes part in this round will get an electronic Participation Certificate. There is also a special recognition prize from the ICPC: ICPC- experience, an invitation to the Moscow World Finals 2021, all-inclusive on-site (hotel, meals, ceremonies, and swag, are included; visa, flights, transportation to the contest location is not). Registration is already open and available via the link. It will be available until the end of the round. The round will again be held in accordance with a set of slightly modified ICPC rules: • The round is unrated. • The contest will have 9 problems of various levels of complexity. • You are only allowed to use Kotlin to solve these problems. • Participants are ranked according to the number of correctly solved problems. Ties are resolved based on the lowest total penalty time for all problems, which is computed as follows. For each solved problem, a penalty is set to the submission time of that problem (the time since the start of the contest). An extra penalty of 10 minutes is added for each failed submission on solved problems (i. e., if you never solve the problem, you will not be penalized for trying that problem). If two participants solved the same number of problems and scored the same penalty, then those of them who had previously made the last successful submission will be given an advantage in the distribution of prizes and gifts. REGISTER → If you are still new to Kotlin we have prepared a tutorial on competitive programming in Kotlin and Kotlin Heroes 5: ICPC Round (Practice), where you can try to solve a few simple problems in Kotlin. All the solutions are open, which means that you can look at the solution even if you haven't solved the problem yet. The practice round is available by the link. We wish you luck and hope you enjoy Kotlin. UPD: The editorial can be found here. Announcement of Kotlin Heroes 5: ICPC Round • +165  » 3 weeks ago, # | 0 Aim for the T-shirt! •  » » 3 weeks ago, # ^ | -11 True lol  » 3 weeks ago, # | +5 No DIV 2 contest before 13/Nov. :-(  » 3 weeks ago, # | -36 NO ENJOYMENT FOR NEWBIE AS THERE IS NO DIV3 IN RECENT FUTURE  » 3 weeks ago, # | +20 I have a question about the new electronic certificate: Is the real name printed on the certificate or just the handle on cf?  » 3 weeks ago, # | +3 I don't know how to use Kotlin :-(And there is no other contests until Nov.13 :-( •  » » 2 weeks ago, # ^ | ← Rev. 2 → +1 [deleted] •  » » 2 weeks ago, # ^ | +1 If you can write basic code, you can simply look up kotlin input/output format and solve the first one or two easy problems to be entered into the lucky draw for t-shirts, so there's really no reason to complain. •  » » 2 weeks ago, # ^ | +13 Learnt Kotlin yesterday to participate because I am bored •  » » » 2 weeks ago, # ^ | 0 Learnt Kotlin during contest because I want t-shirt  » 3 weeks ago, # | 0 Do you mean that I can look at the solutions in the practice contest even if I did not solve it? If I can, how can I see the solutions?  » 3 weeks ago, # | 0 This announcement blog is not added to the Kotlin Heroes Page. Please add it there also.BledDest  » 3 weeks ago, # | -62 I don't get the reason for promoting a particular language (funding ?). I would be happy if it was some normal $choose\ the\ language\ you\ like$ contest. •  » » 3 weeks ago, # ^ | -6 Kotlin is a product of the company Jet Brains. As part of their business they provide tools and services related to kotlin.It is therefore of fundamental importance for the company that people learn and use Kotlin. That is the reason why they pay to create a contest exclusive for Kotlin. •  » » » 3 weeks ago, # ^ | -33 Makes sense obviously from the Jet Brains perspective, but by allowing such thing codeforces is doing something way too different from what it is known for. Also while upsolving I see it has restriction of kotlin it feels bad and annoying.And I fear that the long contest drought maybe to facilitate more participation in this kotlin promoting saga (I hope not). Yeah I know it codeforces is too good a place to say -ve things about but couldn't resist objecting. •  » » » » 2 weeks ago, # ^ | +33 To upsolve the problems in a different language, you can create a mashup and add problems from Kotlin contest there. That way, they can be solved with any language.  » 3 weeks ago, # | +1 All the solutions are open, which means that you can look at the solution even if you haven't solved the problem yet. Doesn't seem like it, I can't see any solutions.  » 2 weeks ago, # | 0 Consider I calculate a run time complexity O(n) & time limit per test 1 seconds given. 1<=n<=1000000 now, how can I calculate my highest taken time? plz help •  » » 2 weeks ago, # ^ | 0 I saw a lecture on CP in which the instructor told to keep the limit under 10^9 operations, generally. So for the above example (n <= 10^6) O(n) or O(n log(n) ) would be fine but O(n^2) would fail usually. •  » » » 2 weeks ago, # ^ | 0 tnq brother •  » » 2 weeks ago, # ^ | 0 As rule of thumb, a common processor theses days, has at least 1GHz. So, it'll perform 10 ^ 9 operations in each cycle. So, in O (n) with n = 10 ^ 9, will be 10 ^ 9/10 ^ 9 = 1 second. Just remember that it's a rule of thumb. It's an asymptotic analysis. You won't get the real needed running time. If you run an algorithm in javascript and the same algorithm in C ++, you'll get different running times, even tough it's the same complexity. As it seems, doesn't make sense these type of comparisons. But, you know that if with O (n) takes 1 second at most, with O (n²) it will'be 10 ^ 18/10 ^ 9 = 10 ^ 9 seconds or 31 Years. It doesn't matter if it's 31 years and 2 days or 30 years and 300 days. It's still so much time, and is not a feasible solution.See the table on top of this articleHope that it'll help you  » 2 weeks ago, # | +6 How do you win ICPC prize? •  » » 2 weeks ago, # ^ | +20 The winner of the Kotlin Heroes X ICPC round will win the ICPC experience, an invitation to the Moscow World Finals 2021, all-inclusive on-site (hotel, meals, ceremonies, and swag, are included; visa, flights, transportation to the contest location is not)  » 2 weeks ago, # | 0 Need Help ASAP!!Following code Throws a runtime error on test 1 for the problem A+B (Trial Problem) in Kotlin Heroes 5: ICPC Round (Practice): fun main() { val t=readLine()!!.toInt() for(tt in 1..t) { var n=readLine()!!.toInt() var m=readLine()!!.toInt() println("${n+m}") } } [contest:1432][problem:A]
•  » » 2 weeks ago, # ^ |   +5 n and m are on same line so :- val (n,m) = readLine()!!.split(" ").map{it.toInt()}
•  » » » 2 weeks ago, # ^ |   0 Thank You So Much Dude!!!
 » 2 weeks ago, # |   -6 These articles should help newcomers get off the ground quickly:- Setting up Your Workflow for Competitive Programming in KotlinKotlin for Competitive Programming
 » 2 weeks ago, # |   +7 noooo, I didn't know it could only be written in kotlin. is this rated?
•  » » 2 weeks ago, # ^ |   0 yaaaaaay, it isn't rated, I just readed it
 » 2 weeks ago, # |   0 What is wrong with this: var aa=mutableListOf>() // do something with aa aa.sort() The compiler says: d.kt:21:8: error: none of the following functions can be called with the arguments supplied: public inline fun MutableList.sort(comparison: (TypeVariable(T), TypeVariable(T)) -> Int): Unit defined in kotlin.collections public inline fun MutableList.sort(comparator: kotlin.Comparator /* = java.util.Comparator */): Unit defined in kotlin.collections aa.sort() 
•  » » 2 weeks ago, # ^ |   0 Well, I was able to solve the sorting issue, the problem seems to be that there is no default sorting for Pair, so we need to define the comparator.However, shortly after I was stuck googling "kotlin how to add element to sorted set" and was not able to find a way in contest time :/This mutable/unmutable collections things do not look very practical to me.
 » 2 weeks ago, # |   +27 I think the chance of getting the lucky t-shirts should increase with the number of problems you solved to encourage people to solve more problems.
 » 2 weeks ago, # |   +3 Learnt to take input output in kotlin one hour after the contest begun and somehow managed to write correct code first problem . Learning the syntax of language during the contest was too much fun..
•  » » 2 weeks ago, # ^ | ← Rev. 2 →   +4 you could write in java and could use converter to convert to kotlin )
•  » » » 2 weeks ago, # ^ |   0 seems interesting but i don't know java either..xD
 » 2 weeks ago, # |   +4 Enjoyable contest — my first time (except for the practice round) doing Kotlin. Thanks to the organisers.
 » 2 weeks ago, # |   0 Is there a greedy solution to problem G?
 » 2 weeks ago, # | ← Rev. 2 →   0 i like the contest it's interesting to code with kotlin
 » 2 weeks ago, # | ← Rev. 2 →   +53 I had never written a line of Kotlin before last night--suffice it to say that I'm glad I gave it a try!I thought a lot of the problems from this round were very high-quality, but I especially enjoyed solving I--I had never seen the trick enabling us to maintain a trie while deleting the first letter of each word, and I thought it was quite clever and elegant. Thanks to the authors for the round and to JetBrains for sponsoring the contest!
•  » » 2 weeks ago, # ^ |   0 Ok, so there IS a solution without any suffix structures, good to know!
•  » » » 2 weeks ago, # ^ |   +9 You don't need to compare suffixes from distinct columns, thus suffix structures are not required indeed: for each column from right to left, you can build a sorted list of suffixes starting in it, pretty much like radix sort.
•  » » » 2 weeks ago, # ^ |   +43 Indeed there is! A slightly more detailed explanation of my solution, in case anyone's curious:First, observe that the problem reduces to determining the minimum number of times you must switch rows in order to write the query string using characters from the corresponding columns of the input matrix. For example, in the last query of the first sample case, we can take "a" from the first row, then "cbb" from the second row, then "c" from the first row (or either of the third or fourth rows).We can use a greedy approach--basically, for each query, pick the row where we'll be able to take the most matching characters before switching rows. It remains to figure out how to quickly determine which row that is and how many matching characters we can take.Our approach uses a trie. Construct a trie using the $N$ rows of the input matrix as our input strings. Then, feed each query string into this trie to figure out how many matching characters we can take before we have to switch rows for the first time.Now, if we could construct similar tries starting at each remaining column of the matrix, we could use a similar approach to figure out how many times we have to switch rows for all queries in $O(QM).$ It turns out that this is possible. Basically, we need to process updates to the trie in which we delete the first character of every string. We can do so by deleting the root node and merging all of the tries created as a result. To merge two tries, we iterate over all possible letters that can follow the root. If only one of the tries has a node corresponding to that letter, that node goes in the merged trie. If both of the tries have nodes corresponding to that letter, then we merge those subtries and put the result in the merged trie. Since merging two trie nodes requires a constant amount of work and there are $O(NM)$ trie nodes, these merges work in $O(NM)$ time in total. Then, we spend $O(M)$ time in total feeding each query into the appropriate tries, so our total time complexity is $O(M(N+Q)).$ Happy to answer follow-up questions if any of this was unclear!
•  » » » » 2 weeks ago, # ^ |   +20 Very cool indeed, thank you!
 » 2 weeks ago, # |   +10 The contest has 10 problems, not 9)
 » 2 weeks ago, # |   +28 What is test 164 of problem I :(
•  » » 2 weeks ago, # ^ |   +15 I can't describe what I tried to do with that test (a desperate attempt to hack some tester's solution), but maybe the source code of the generator can help: Source code#include "testlib.h" #include #define forn(i, n) for (int i = 0; i < int(n); i++) using namespace std; int main(int argc, char* argv[]) { registerGen(argc, argv, 1); int n = atoi(argv[1]); int m = atoi(argv[2]); int q = atoi(argv[3]); cout << n << " " << m << " " << q << endl; for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) cout << ((j < i) ? char(rnd.next(26) + 'a') : 'a'); cout << endl; } for(int i = 0; i < q; i++) { for(int j = 0; j < m; j++) cout << char(rnd.next(26) + 'a'); cout << endl; } } It is being run with arguments 2 250000 2.
 » 2 weeks ago, # |   0 When will the tutorial to the contest be released?
 » 2 weeks ago, # |   0 Is it always optimal for Bob to take the smallest possible number in G?
•  » » 2 weeks ago, # ^ |   +5 Yes (at least I got AC this way)
 » 2 weeks ago, # |   0 Hi, is there anyway to submit my solution to verify it? I finished debugging a few sec before the round end, and now i'm itchy to know if i get the correct answer :(
 » 2 weeks ago, # |   +2 Congratulations to tourist yet again!
 » 2 weeks ago, # |   0 Can someone explain the gameprocess in the second testcase in G?
•  » » 2 weeks ago, # ^ |   +5 1). Alice chooses 109, Bob chooses 2002). Alice chooses 108, Bob chooses 2013). Alice chooses 1, Bob chooses 100(201 — 108) + (200 — 109) + (100 — 1) = 283
 » 2 weeks ago, # | ← Rev. 5 →   +38 If we take seed = 346 (penalty of tourist) and len = 700 (total participants except first 50) the winners of random Kotlin T-shirt are:56 90 106 111 132 138 158 200 243 245 256 263 270 317 324 339 346 347 359 365 395 403 414 420 422 426 454 457 487 494 503 506 513 551 568 585 595 597 609 616 647 671 672 682 684 695 703 704 705 716 (Information from this comment).Upd. for new len = 687 new list is:62 68 74 100 138 141 147 156 184 230 233 239 260 268 287 294 296 301 323 327 353 361 368 376 383 395 398 412 416 431 438 446 450 457 470 472 486 514 535 610 611 622 645 648 653 666 673 695 709 718
•  » » 2 weeks ago, # ^ |   0 In final rank there are no 513th rank. two people got 512th rank. How to select 513th rank for random t-shirt winner?
•  » » » 2 weeks ago, # ^ |   0 the ties are broken by the last submission time, if I remember correctly
•  » » » » 2 weeks ago, # ^ |   0 i submitted earlier than first but i am second
•  » » » » » 2 weeks ago, # ^ |   0
•  » » » » » 2 weeks ago, # ^ |   0 the standings show people tied in random order iirc, don't mind them too much
•  » » » » » » 2 weeks ago, # ^ |   0 okay
•  » » 2 weeks ago, # ^ |   +12 remove cheaters?
•  » » 2 weeks ago, # ^ |   -8 OMG im #568 in the final standings
•  » » » 2 weeks ago, # ^ |   -11 But how am i going to receive my t-shirt and certificate.
•  » » 2 weeks ago, # ^ |   0 will I get the certificate atleast?
•  » » » 2 weeks ago, # ^ |   0 Yes You will get certificate if you solved atleast one problem
•  » » » » 2 weeks ago, # ^ |   0 I solved 3 problems, will I get my certificate in mail? also In the descripton it was mentioned that all the participants will get certificate.
•  » » 13 days ago, # ^ |   0 In the Rank 645 , there are three people, who will got prizes then?
•  » » » 12 days ago, # ^ |   0 Don't think so
•  » » 11 days ago, # ^ |   0 For seed=346 and len=688, i've got the following output: 71 81 116 118 126 133 143 157 161 176 195 198 199 200 252 274 275 315 325 340 351 352 354 358 378 390 397 411 418 424 434 439 466 470 474 480 485 498 503 504 531 548 559 569 581 607 615 644 655 659 
•  » » 9 days ago, # ^ |   0 How has the length changed after so many days? Did they catch some cheaters?
•  » » » 9 days ago, # ^ |   0 I think yes, some cheaters definitely have been removed.
•  » » 9 days ago, # ^ |   +1 Why len=687? It should be 737 — the total number of participants solved at least 1.
•  » » » 9 days ago, # ^ |   0 Your comment here states that The seed will be the total penalty best participants of this contest, the parameter length will be the total number of participants solved at least one problem minus 50.
•  » » » » 9 days ago, # ^ |   0 Currently, we use randgen.cpp by KAN, it has other semantics for len. #include "testlib.h" #include using namespace std; int main(int argc, char *argv[]) { if (argc < 4) { cout << "Command line arguments are: seed length prefix nwinners" << endl; return 1; } int seed = atoi(argv[1]); int len = atoi(argv[2]); int prefix = atoi(argv[3]); int nwinners = atoi(argv[4]); rnd.setSeed(seed); set winners; while ((int)winners.size() < nwinners) winners.insert(rnd.next(prefix + 1, len)); for (int i = 1; i <= prefix; ++i) winners.insert(i); for (auto winner: winners) cout << winner << " "; cout << endl; return 0; } 
 » 2 weeks ago, # |   0 if there is no x place in standigs who will won t-shirt?
•  » » 2 weeks ago, # ^ |   +40 john cena
 » 2 weeks ago, # |   +3 amazing contest, glad to take the practice round first :)
 » 2 weeks ago, # | ← Rev. 2 →   +11 Thank you for the contest, it was really nice one! And I like kotlin and appreciate all your efforts to develop such a nice language, my favorite one ❤️
 » 2 weeks ago, # |   +37 When will we receive our certificates and can anyone update me about the t shirt?
 » 2 weeks ago, # |   +47 Who are the thsirt winners?
 » 2 weeks ago, # |   -7 Will there be a list of people who will receive a prize?
 » 2 weeks ago, # | ← Rev. 3 →   -27 MikeMirzayanov When the prize winners will be announced?
•  » » 2 weeks ago, # ^ |   +5 Tagging BledDest and MikeMirzayanov
•  » » » 13 days ago, # ^ |   0 Did you guys just forgot about the random T-Shirts?
•  » » » » 13 days ago, # ^ |   -24 its a scam buddy, it's not expected from codeforces!
•  » » » » 13 days ago, # ^ |   0 just wait.
 » 2 weeks ago, # |   0 Legend Master Farhan132
 » 2 weeks ago, # |   +4 When and how will the certificate arrive
•  » » 2 weeks ago, # ^ |   0 I guess on 30th February by pigeon post, but don't take that for granted.
•  » » » 2 weeks ago, # ^ |   0 Feb? Do you want to say Nov
•  » » » » 2 weeks ago, # ^ |   +4 30th in Feb...(this is a joke)
 » 13 days ago, # |   -41 I have got a message that my code has been matched with some random person who was also giving this compitition, I don't know how this happened, this might be coincident but I just want to confirm that I don't know that person nor I have any contact with him/her. Please recheck your system and consider me in this competition.
•  » » 13 days ago, # ^ |   0 which submission? give link
•  » » » 13 days ago, # ^ |   +1 98219728 and 98220972 . There are two same codes, that are not trivia, so maybe you used ideon of smth.
•  » » » » 13 days ago, # ^ |   +15 And these two accounts have the same code for all the problems of practice contest.... Now it's obvious that it's cheating.
 » 12 days ago, # |   +11
•  » » 12 days ago, # ^ |   0 Really?
•  » » » 11 days ago, # ^ |   0
 » 11 days ago, # |   +23 Not well, this is some kind of disrespect for the codeforces community in general — sad of course ... But if there are problems with cheating, then let us (participants) know that the results will be later, many participants are waiting for the results ...
»
9 days ago, # |
+144

I apologize for the delay. And finally, with fanfare and drums, I publish the lucky ones who get the T-shirts.

List place Contest Rank Name
1 1431 1 tourist
2 1431 2 Benq
3 1431 3 Geothermal
4 1431 4 natsugiri
5 1431 5 Golovanov399
6 1431 6 eatmore
7 1431 7 xiaowuc1
8 1431 8 ulna
10 1431 10 Bench0310
11 1431 11 ainta
12 1431 12 azukun
13 1431 13 uwi
14 1431 14 wu_qing
15 1431 15 SYury
16 1431 16 Tlatoani
17 1431 17 Lily
18 1431 18 majk
19 1431 19 Potassium
20 1431 20 Heltion
21 1431 21 pashka
22 1431 22 Fortin
23 1431 23 htkb
24 1431 24 Aleks5d
25 1431 25 Medeowex
26 1431 26 IgorSmirnov
27 1431 27 lucifer1004
28 1431 28 tob123
29 1431 28 fjuengermann
30 1431 30 pparys
31 1431 31 shilov
33 1431 33 Spheniscine
34 1431 34 Maksim1744
35 1431 35 Quang
36 1431 36 gafeol
37 1431 37 golions
38 1431 38 WiwiHo
39 1431 39 PugachAG
40 1431 40 ynq1242
41 1431 41 jonas.havelka.42
42 1431 42 yudedako
43 1431 43 gleb.astashkin
44 1431 44 Dart-Xeyter
45 1431 45 rk42745417
46 1431 46 EmK
47 1431 47 timf1089
48 1431 48 receed
49 1431 49 Son
50 1431 50 Nikitosh
53 1431 52 pseuda
79 1431 79 Hakiobo
92 1431 92 0solve
98 1431 98 Musin
120 1431 120 Moririn2528
161 1431 161 pye
165 1431 165 ndrsh
184 1431 184 jetoyrico
199 1431 199 Andrey_R
232 1431 232 TToPoCeHoK
246 1431 246 manish.17
251 1431 250 Koala13
261 1431 260 htamop
265 1431 265 Dimitrys
317 1431 316 JNU_dh_AK_WF
328 1431 328 stars_in_the_sky
331 1431 331 jcarlson212
371 1431 371 da-louis
377 1431 377 smit.mangukiya
380 1431 380 ShSergey
392 1431 392 eneskayiklik
395 1431 395 ali.gh2236
401 1431 400 aCitizen
408 1431 408 Lius
424 1431 424 thedonkeyxot
449 1431 449 shubhammitt
464 1431 463 ambershogun
471 1431 471 alaza5
474 1431 474 IdeaSeeker
495 1431 495 Soul_Full_Of_Thunder
513 1431 513 ekeitaro
521 1431 516 Amir_Reza
528 1431 528 Exiti228
540 1431 540 The_Uncrowned_King
547 1431 547 reLLike
549 1431 547 2fat2code
555 1431 555 B0rnToLose
572 1431 572 j00sko
593 1431 593 fkrihkl
634 1431 632 Protego_totalum
636 1431 635 aihara_eiji
648 1431 648 iff.julian
664 1431 664 BMking
665 1431 664 bansalraghav_19
666 1431 666 dvd1
700 1431 700 stein.code
702 1431 702 ErimKerim
708 1431 707 Niloy.
709 1431 709 steph.dubedat
724 1431 723 mult_9
•  » » 9 days ago, # ^ |   +8 Wow it's definitely the best new for me in this November morning! Thank you the Codeforces Platform! Besides I have a question: how would the T-shirt be posted to prize-winner? thx for your replying
•  » » 8 days ago, # ^ | ← Rev. 3 →   0 Just curios. This list is for len=737. AngryBunny is #738, shouldn't len=738? ./sol 346 738 50 50 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 71 81 116 118 126 133 143 157 161 176 195 198 199 200 252 274 275 315 325 340 351 352 354 358 378 390 397 411 418 424 434 439 466 470 474 480 485 498 503 504 531 548 559 569 581 607 615 644 655 659 
 » 8 days ago, # |   0 Where is the list of the those people who have won the T-shirts. Also wanted to know where can we access the online Certificate?
•  » » 8 days ago, # ^ |   0 Check message above.
•  » » » 4 days ago, # ^ |   0 where u received it? on mail?
 » 6 days ago, # |   0 When and how are we going to receive certificate
•  » » 5 days ago, # ^ |   0 Here you go.
•  » » » 5 days ago, # ^ |   0 Is it possible to change name from universeyash to Yash plz
•  » » » » 4 days ago, # ^ | ← Rev. 2 →   0 Please read the certificate carefully. :) SpoilerIt's a joke. :)
•  » » » 4 days ago, # ^ |   0 Not Cool dude,the fact is i thought it was real.even though title is wirtten as Hotlin. But I genuenly asked for certificate
•  » » » » 4 days ago, # ^ |   0 Sorry mate. I thought it was obvious.:D
•  » » » » » 4 days ago, # ^ |   0 It's OK mate but seriously do you know when our certs are going to arrive
•  » » » » » » 4 days ago, # ^ | ← Rev. 2 →   0 Just wait for a while. They're probably busy with other stuff. As far as I know, T-shirts sometimes take months to arrive. So, I wouldn't be surprised if certificates take a similar amount of time, though it may be quicker because it's electronic.
 » 4 days ago, # |   0 I participated in the contest but I did not receive any electronic certificate