Since the early days of the PL/SQL Challenge, we have been aware of the possibility of cheating by players. In response, we developed a set of tools to analyze player data to identify patterns of answer submissions that could reflect one or another form of cheating (such as a single person having multiple accounts, or multiple people colluding to achieve high scores).
We have in the past applied these tools to identify players who answer too quickly, and made adjustments to their scores accordingly. When we apply the adjustment, we notify the players that:
It is certainly quite possible that a person answering so quickly (and correctly) is cheating by taking the quiz under a different account, figuring out the correct answers, and then submitting the answer under their "real" account. It is also possible that they knew that subject very well or simply guessed. Rather than automatically reject such answers, we analyze player patterns over a longer period of time, usually no less than two weeks. We then make adjustments to the timings and ranks of those players who answer, cumulatively, in so short an amount of time that there is no way to distinguish their pattern of play from someone who would be cheating.
Today, it is my distinct non-privilege to announce that I have removed from the website three players who I believe have colluded over many quarters to take a whole bunch of the top prizes in the quarterly PL/SQL Championships. The players are (with their championship history under their names):
Frank Schrader
Q3 2010:12th, Q4 2010:30th, Q1 2011:1st, Q2 2011:5th, Q3 2011:1st, Q4
2011:1st, Q1 2012:13th, Q2 2012:3rd, Q3 2012:2nd, Q4 2012:4th, Q1
2013:2nd, Q2 2013:22nd
Dieter Kowalski
Q1 2012:21st, Q2 2012:8th, Q4 2012:16th, Q1 2013:24th, Q2 2013:16th
Konrad Schmidt (kowido)
Q1 2011:26th, Q2 2011:9th, Q3 2011:17th, Q4 2011:21st, Q1 2012:4th, Q2
2012:1st, Q3 2012:9th, Q4 2012:2nd, Q1 2013:1st, Q2 2013:15th
As you can see, two of our consistent champions dropped dramatically in ranking when in the Q2 2013 championship everyone played at the same time.
After I notified all three players of my determination and asked for a response, all three "people" immediately stopped playing. Only Frank even replied to my request and he protested his innocence. Unfortunately, it was not a convincing protest. The bottom line is that there is no way to distinguish their pattern of play from someone who would be cheating.
Frank and Konrad cumulatively won $2800 in prizes on the PL/SQL Challenge site. This is, of course, a source of extreme frustration for me....but what can you do?
Well, here's what we can do: all rankings have been recalculated after these players' removal. We therefore have in many cases new winners for the championships. I am sorry that we will not be able to issue prizes to these new winners, but at least you will be able to print off and display your certificate of achievement - and these new achievements become a part of your profile and history on the PL/SQL Challenge website.
And - do I really need to say this? - let this be a warning to other players who are cheating or contemplating such: we will continue to enhance and apply our tools to root our cheaters, remove them from the site, and announce their crimes to the world.
We may also make our tools available on the website itself, so that any players can run the analysis and see if they can uncover cases of potential cheating to report to us.
05 October 2013
New Weekly Quiz on Database Design
Since April 2010, the PL/SQL Challenge
has offered daily, weekly and monthly quizzes on Oracle PL/SQL, SQL,
deductive logic and Oracle Application Express. Oracle technologists
have submitted over 740,000 answers to these quizzes. Hundreds have
raved about how much they have learned, how much fun it is to compete
(or not, as you choose!)....
This website is one of my proudest achievements, but I sure would love to have more of my developer and DBA friends around the world using the site.
So I am excited to announce a new weekly quiz on Database Design, which will start on 5 October.
Relational databases form the backbone of thousands, if not millions, of applications around the globe. A key part of building these applications is designing and implementing the data structures they use. Proper table design can mean the difference between a scalable, high performing database that is a joy to query and an unscalable mess that makes your brain melt.
Given the importance of databases, understanding good data modelling techniques and physical implementation methods are essential skills for architects, database administrators and developers creating database applications.
Building on the SQL and PL/SQL quizzes already available at the PL/SQL Challenge, the weekly Database Design Quiz kicks off on 5 October to help you build these skills. The quiz will cover many areas of database design, from logical design all the way to physical database design, including topics such as:
The person who has made this quiz possible is Chris Saxon, a long-time player on the PL/SQL Challenge. Chris is a database technologist with 10 years experience designing and building Oracle database applications. He currently works as the Data Architect for the airline Flybe, a role which sees him creating the data structures for the flybe.com database and the company's enterprise data warehouse. He also runs the blog www.sqlfail.com, a project to explain database concepts and other topics of interest using just SQL and PL/SQL. While not thinking about data, his spare time is filled chasing after his daughter Isabelle, born in January this year.
I have, by the way, seen pictures of Isabelle. She is beautiful!
But Chris is so devoted to his craft and so interested in helping others that he is going to give up precious time with his daughter to create and manage the quizzes.
So play the quiz! Every week! Starting 5 October (this Saturday).
If you have not yet visited the PL/SQL Challenge, it's easy to register and entirely free. Check it out!
This website is one of my proudest achievements, but I sure would love to have more of my developer and DBA friends around the world using the site.
So I am excited to announce a new weekly quiz on Database Design, which will start on 5 October.
Relational databases form the backbone of thousands, if not millions, of applications around the globe. A key part of building these applications is designing and implementing the data structures they use. Proper table design can mean the difference between a scalable, high performing database that is a joy to query and an unscalable mess that makes your brain melt.
Given the importance of databases, understanding good data modelling techniques and physical implementation methods are essential skills for architects, database administrators and developers creating database applications.
Building on the SQL and PL/SQL quizzes already available at the PL/SQL Challenge, the weekly Database Design Quiz kicks off on 5 October to help you build these skills. The quiz will cover many areas of database design, from logical design all the way to physical database design, including topics such as:
- Normalization - ensuring you have high quality data
- Referential integrity - saving you the time and effort of writing your own constraints
- Indexing - enabling you to write fast and efficient queries
The person who has made this quiz possible is Chris Saxon, a long-time player on the PL/SQL Challenge. Chris is a database technologist with 10 years experience designing and building Oracle database applications. He currently works as the Data Architect for the airline Flybe, a role which sees him creating the data structures for the flybe.com database and the company's enterprise data warehouse. He also runs the blog www.sqlfail.com, a project to explain database concepts and other topics of interest using just SQL and PL/SQL. While not thinking about data, his spare time is filled chasing after his daughter Isabelle, born in January this year.
I have, by the way, seen pictures of Isabelle. She is beautiful!
But Chris is so devoted to his craft and so interested in helping others that he is going to give up precious time with his daughter to create and manage the quizzes.
So play the quiz! Every week! Starting 5 October (this Saturday).
If you have not yet visited the PL/SQL Challenge, it's easy to register and entirely free. Check it out!
06 September 2013
Q2 2013 PL/SQL Championship Results!
You will find below the rankings for the 2013-2 playoff; the number next to the player's name is the number of times that player has participated in a playoff.
Congratulations first and foremost to our top-ranked players:
1st Place: Frank Schmitt of Germany wins: Amazon.com US$250 Gift Card .
2nd Place: Chris Saxon of United Kingdom wins: Amazon.com US$175 Gift Card.
3rd Place: Niels Hecker of Germany wins: Amazon.com US$100 Gift Card.
Congratulations to everyone who played in the playoff. I hope you found it entertaining, challenging and educational. And for those who were not able to participate in the playoff, you can take the quizzes next week through the Practice feature.
Warm regards,
Steven Feuerstein
Note: Below the table of results for this playoff, you will find another list showing the playoff history of each of these players.
Congratulations first and foremost to our top-ranked players:
1st Place: Frank Schmitt of Germany wins: Amazon.com US$250 Gift Card .
2nd Place: Chris Saxon of United Kingdom wins: Amazon.com US$175 Gift Card.
3rd Place: Niels Hecker of Germany wins: Amazon.com US$100 Gift Card.
Congratulations to everyone who played in the playoff. I hope you found it entertaining, challenging and educational. And for those who were not able to participate in the playoff, you can take the quizzes next week through the Practice feature.
Warm regards,
Steven Feuerstein
Note: Below the table of results for this playoff, you will find another list showing the playoff history of each of these players.
| Rank | Name | Country | Total Time | % Correct | Total Score |
|---|---|---|---|---|---|
| 1 | Frank Schmitt (6) | Germany | 23 mins 28 secs | 92% | 2971 |
| 2 | Chris Saxon (6) | United Kingdom | 27 mins 56 secs | 92% | 2881 |
| 3 | Niels Hecker (12) | Germany | 29 mins 10 secs | 92% | 2857 |
| 4 | Janis Baiza (7) | Latvia | 22 mins 49 secs | 88% | 2834 |
| 5 | Peter Schmidt (4) | Germany | 30 mins 57 secs | 92% | 2821 |
| 6 | Ivan Blanarik (6) | Slovakia | 33 mins 42 secs | 92% | 2741 |
| 7 | mentzel.iudith (11) | Israel | 34 mins 38 secs | 92% | 2682 |
| 8 | Chad Lee (9) | United States | 32 mins 35 secs | 88% | 2663 |
| 9 | Alexey Ponomarenko (1) | Ukraine | 32 mins 45 secs | 88% | 2635 |
| 10 | Jason H (2) | United States | 30 mins 31 secs | 84% | 2520 |
| 11 | Michal Cvan (9) | Slovakia | 29 mins 01 secs | 80% | 2485 |
| 12 | Mike Pargeter (11) | United Kingdom | 23 mins 51 secs | 76% | 2473 |
| 13 | Randy Gettman (11) | United States | 32 mins 28 secs | 80% | 2451 |
| 14 | Vincent Malgrat (6) | French Republic | 34 mins 42 secs | 84% | 2431 |
| 15 | kowido (10) | Germany | 34 mins 27 secs | 84% | 2416 |
| 16 | Dieter Kowalski (5) | Germany | 34 mins 13 secs | 80% | 2356 |
| 17 | Jerry Bull (9) | United States | 31 mins 05 secs | 80% | 2353 |
| 18 | Siim Kask (11) | Estonia | 25 mins 03 secs | 76% | 2289 |
| 19 | Tony Winn (3) | Australia | 31 mins 34 secs | 80% | 2244 |
| 20 | Jeroen Rutte (5) | Netherlands | 32 mins 26 secs | 76% | 2241 |
| 21 | Ajaykumar Gupta (2) | Singapore | 33 mins 57 secs | 76% | 2211 |
| 22 | Frank Schrader (12) | Germany | 32 mins 21 secs | 76% | 2143 |
| 23 | Veera Marimuthu (2) | Singapore | 30 mins 45 secs | 76% | 2135 |
| 24 | Matthias Rogel (3) | Germany | 18 mins 02 secs | 60% | 1869 |
| 25 | Viacheslav Stepanov (10) | Russia | 31 mins 11 secs | 64% | 1751 |
| 26 | Stelios Vlasopoulos (8) | Belgium | 23 mins 17 secs | 56% | 1674 |
| 27 | Leszek Grudzień (1) | Poland | 25 mins 17 secs | 56% | 1599 |
| 28 | Pavel Noga (1) | Czech Republic | 34 mins 52 secs | 60% | 1593 |
| 29 | swart260 (5) | Netherlands | 33 mins 40 secs | 64% | 1582 |
| 30 | Vinu Garg (4) | India | 24 mins 03 secs | 56% | 1569 |
| 31 | Rakesh Dadhich (3) | India | 27 mins 45 secs | 56% | 1550 |
| 32 | Naresh Kumar (1) | India | 32 mins 00 secs | 60% | 1540 |
| 33 | Yuan Tschang (7) | United States | 34 mins 43 secs | 60% | 1531 |
| 34 | Livio (1) | Luxembourg | 34 mins 51 secs | 44% | 878 |
Playoff Performance History
After each name, the quarter in which he or she played, and the ranking in that playoff.| Name | History |
|---|---|
| Frank Schmitt | Q4 2011:24th, Q2 2012:4th, Q3 2012:23rd, Q4 2012:5th, Q1 2013:15th, Q2 2013:1st |
| Chris Saxon | Q4 2010:16th, Q2 2011:2nd, Q4 2011:8th, Q3 2012:22nd, Q4 2012:3rd, Q2 2013:2nd |
| Niels Hecker | Q2 2010:2nd, Q3 2010:1st, Q4 2010:15th, Q1 2011:7th, Q3 2011:8th, Q4 2011:11th, Q1 2012:2nd, Q2 2012:5th, Q3 2012:3rd, Q4 2012:9th, Q1 2013:8th, Q2 2013:3rd |
| Janis Baiza | Q2 2010:3rd, Q4 2010:7th, Q3 2011:10th, Q4 2011:2nd, Q3 2012:25th, Q1 2013:6th, Q2 2013:4th |
| Peter Schmidt | Q3 2010:2nd, Q4 2010:14th, Q3 2012:29th, Q2 2013:5th |
| Ivan Blanarik | Q1 2012:3rd, Q2 2012:15th, Q3 2012:18th, Q4 2012:27th, Q2 2013:6th |
| mentzel.iudith | Q4 2010:4th, Q1 2011:18th, Q2 2011:25th, Q3 2011:6th, Q4 2011:5th, Q1 2012:8th, Q2 2012:19th, Q3 2012:35th, Q4 2012:6th, Q1 2013:4th, Q2 2013:7th |
| Chad Lee | Q2 2011:28th, Q3 2011:19th, Q4 2011:13th, Q1 2012:1st, Q2 2012:26th, Q3 2012:30th, Q4 2012:25th, Q1 2013:22nd, Q2 2013:8th |
| Alexey Ponomarenko | Q2 2013:9th |
| Jason H | Q3 2012:19th, Q2 2013:10th |
| Michal Cvan | Q3 2010:23rd, Q4 2010:25th, Q3 2011:23rd, Q1 2012:12th, Q3 2012:16th, Q4 2012:17th, Q1 2013:16th, Q2 2013:11th |
| Mike Pargeter | Q4 2010:22nd, Q1 2011:16th, Q2 2011:10th, Q4 2011:6th, Q1 2012:6th, Q2 2012:20th, Q3 2012:6th, Q4 2012:23rd, Q2 2013:12th |
| Randy Gettman | Q3 2010:8th, Q1 2011:27th, Q2 2011:12th, Q3 2011:4th, Q4 2011:12th, Q1 2012:20th, Q2 2012:22nd, Q3 2012:32nd, Q4 2012:14th, Q1 2013:5th, Q2 2013:13th |
| Vincent Malgrat | Q4 2011:10th, Q1 2012:15th, Q2 2012:16th, Q4 2012:8th, Q1 2013:3rd, Q2 2013:14th |
| kowido | Q1 2011:26th, Q2 2011:9th, Q3 2011:17th, Q4 2011:21st, Q1 2012:4th, Q2 2012:1st, Q3 2012:9th, Q4 2012:2nd, Q1 2013:1st, Q2 2013:15th |
| Dieter Kowalski | Q1 2012:21st, Q2 2012:8th, Q4 2012:16th, Q1 2013:24th, Q2 2013:16th |
| Jerry Bull | Q2 2011:34th, Q3 2011:9th, Q1 2012:14th, Q2 2012:14th, Q3 2012:15th, Q4 2012:18th, Q1 2013:11th, Q2 2013:17th |
| Siim Kask | Q1 2011:30th, Q2 2011:7th, Q3 2011:11th, Q4 2011:4th, Q1 2012:9th, Q2 2012:6th, Q3 2012:33rd, Q4 2012:12th, Q1 2013:13th, Q2 2013:18th |
| Tony Winn | Q3 2010:17th, Q2 2013:19th |
| Jeroen Rutte | Q3 2010:20th, Q3 2012:12th, Q4 2012:13th, Q1 2013:10th, Q2 2013:20th |
| Ajaykumar Gupta | Q1 2013:7th, Q2 2013:21st |
| Frank Schrader | Q3 2010:12th, Q4 2010:30th, Q1 2011:1st, Q2 2011:5th, Q3 2011:1st, Q4 2011:1st, Q1 2012:13th, Q2 2012:3rd, Q3 2012:2nd, Q4 2012:4th, Q1 2013:2nd, Q2 2013:22nd |
| Veera Marimuthu | Q1 2013:21st, Q2 2013:23rd |
| Matthias Rogel | Q2 2013:24th |
| Viacheslav Stepanov | Q1 2011:9th, Q2 2011:4th, Q3 2011:14th, Q4 2011:20th, Q1 2012:19th, Q2 2012:12th, Q3 2012:7th, Q4 2012:24th, Q1 2013:20th, Q2 2013:25th |
| Stelios Vlasopoulos | Q4 2010:38th, Q4 2011:22nd, Q1 2012:30th, Q2 2012:33rd, Q3 2012:1st, Q4 2012:1st, Q1 2013:30th, Q2 2013:26th |
| Leszek Grudzień | Q2 2013:27th |
| Pavel Noga | Q2 2013:28th |
| swart260 | Q2 2012:24th, Q3 2012:27th, Q4 2012:28th, Q1 2013:32nd, Q2 2013:29th |
| Vinu Garg | Q2 2012:32nd, Q1 2013:31st, Q2 2013:30th |
| Rakesh Dadhich | Q2 2012:13th, Q1 2013:26th, Q2 2013:31st |
| Naresh Kumar | Q2 2013:32nd |
| Yuan Tschang | Q2 2012:27th, Q3 2012:26th, Q4 2012:30th, Q2 2013:33rd |
| Livio | Q2 2013:34th |
03 August 2013
On the Importance of Being Emailed
I don't know about you, but my In box functions as my to-do list. Not my only to-do list, mind you. I still scratch out lists on paper with an ancient technology known as a pen. But my In box plays a critical role in reminding me of upcoming items of interest.
I am not the only one, as I was reminded rather forcefully this week.
The PL/SQL Challenge reminds players (who have asked for reminders) about their daily and weekly quizzes. We also send out emails with results, once the quiz has closed.
Unfortunately, the email queue for our site (and perhaps others?) got backed up this week. Emails did not go out. And I did not pay sufficient attention to notice.
As a result, we received some painful emails like:
I got reminder for 2013-07-30 quiz at early morning of 2013-08-03. Looking at the email headers it is not my local SMTP server problem. All other emails from plsql challenge also is very late, so I missed Fridays quiz :(
I didn't get "Quiz Results"-mails on 31 July and 01 August and I also didn't get a "Reminder"-mail yesterday (or already some days before). So I forgot to play the quiz yesterday.
and worst of all:
I have been playing PL/SQL quizzes without having missed a single quiz since last 2 years. Since I am working, I rely on reminder emails, But I missed out the 1st August 2013 quiz. If you can please resolve the issue with reminder emails and consider my waiver for 1st August Daily Quiz, which I could not take.
Sadly, we cannot issue waivers or give you credit for a missed quiz. Hundreds of people did play on Thursday and Friday (though I wondered at the time why the count was lower than usual - I just figured it was due to summer holidays).
We will do our best to ensure that the emails keep on flowing, but remember:
I am not the only one, as I was reminded rather forcefully this week.
The PL/SQL Challenge reminds players (who have asked for reminders) about their daily and weekly quizzes. We also send out emails with results, once the quiz has closed.
Unfortunately, the email queue for our site (and perhaps others?) got backed up this week. Emails did not go out. And I did not pay sufficient attention to notice.
As a result, we received some painful emails like:
I got reminder for 2013-07-30 quiz at early morning of 2013-08-03. Looking at the email headers it is not my local SMTP server problem. All other emails from plsql challenge also is very late, so I missed Fridays quiz :(
I didn't get "Quiz Results"-mails on 31 July and 01 August and I also didn't get a "Reminder"-mail yesterday (or already some days before). So I forgot to play the quiz yesterday.
and worst of all:
I have been playing PL/SQL quizzes without having missed a single quiz since last 2 years. Since I am working, I rely on reminder emails, But I missed out the 1st August 2013 quiz. If you can please resolve the issue with reminder emails and consider my waiver for 1st August Daily Quiz, which I could not take.
Sadly, we cannot issue waivers or give you credit for a missed quiz. Hundreds of people did play on Thursday and Friday (though I wondered at the time why the count was lower than usual - I just figured it was due to summer holidays).
We will do our best to ensure that the emails keep on flowing, but remember:
If it is a weekday, there is a PL/SQL quiz for you to take!
22 July 2013
Q2 2013 Championship Rescheduled for 3 September
Due to conflicts on 3 August and then the joy of summer vacations and holidays, we will hold the Q2 2013 Championship on 3 September, at 15:00 UTC (still a single time, but now on Tuesday, not Saturday).
Players will be invited via email to sign up for the championship, confirming their participation.
Players will be invited via email to sign up for the championship, confirming their participation.
17 July 2013
Q2 2013 Championship will NOT be held on 3 August
It is tough finding a time in the summer to play the Championship! Enough players said "no" to 3 August to trigger the rule that says: "Find a new date!" So the championship will not be held on 3 August. We will poll our players and find a better date - and for this second attempt, we will shift back to a weekday, not the weekend.
15 July 2013
Q2 2013 PL/SQL Championship to be held on 3 August
The second quarter of 2013 is now history. And that means....it's time
for the next championship competition!
The following players will be invited to participate in the Q2 2013 championship. The number in parentheses after their names are the number of playoffs in which they have already participated.
See the FAQ for an explanation of the three ways a player can qualify for the playoff.
And congratulations to all listed below on their accomplishment and best of luck in the upcoming competition! We have six first-time championship players and many veterans of this fine competition.
This championship will be different from past events in two important ways:
Everyone will play at the same time: 3 August 16:00 UTC. Which means we are also holding the championship on a Saturday, the first time ever that we play on the weekend. Our three players from the Asia-Pacific region (who will be playing in the very early morning) have graciously accepted this additional challenge. Everyone else is in Europe and the United States, so it shouldn't be too painful. :-) We shall see how it goes!
The following players will be invited to participate in the Q2 2013 championship. The number in parentheses after their names are the number of playoffs in which they have already participated.
See the FAQ for an explanation of the three ways a player can qualify for the playoff.
And congratulations to all listed below on their accomplishment and best of luck in the upcoming competition! We have six first-time championship players and many veterans of this fine competition.
This championship will be different from past events in two important ways:
Everyone will play at the same time: 3 August 16:00 UTC. Which means we are also holding the championship on a Saturday, the first time ever that we play on the weekend. Our three players from the Asia-Pacific region (who will be playing in the very early morning) have graciously accepted this additional challenge. Everyone else is in Europe and the United States, so it shouldn't be too painful. :-) We shall see how it goes!
| Name | Rank | Qualification | Country |
|---|---|---|---|
| Ajaykumar Gupta (1) | 1 | Top 25 | Singapore |
| Rakesh Dadhich (2) | 2 | Top 25 | India |
| Janis Baiza (6) | 3 | Top 25 | Latvia |
| swart260 (4) | 4 | Top 25 | Netherlands |
| mentzel.iudith (10) | 5 | Top 25 | Israel |
| Stelios Vlasopoulos (7) | 6 | Top 25 | Belgium |
| Chris Saxon (5) | 7 | Top 25 | United Kingdom |
| Vinu Garg (3) | 8 | Top 25 | India |
| Milibor Jovanovic (2) | 9 | Top 25 | Serbia |
| Mike Pargeter (10) | 10 | Top 25 | United Kingdom |
| Ivan Blanarik (5) | 11 | Top 25 | Slovakia |
| Viacheslav Stepanov (9) | 12 | Top 25 | Russia |
| Niels Hecker (11) | 13 | Top 25 | Germany |
| Veera Marimuthu (1) | 14 | Top 25 | Singapore |
| Vincent Malgrat (5) | 15 | Top 25 | French Republic |
| Frank Schrader (11) | 16 | Top 25 | Germany |
| kowido (9) | 17 | Top 25 | Germany |
| Jeroen Rutte (4) | 18 | Top 25 | Netherlands |
| Dieter Kowalski (4) | 19 | Top 25 | Germany |
| Jerry Bull (8) | 20 | Top 25 | United States |
| Siim Kask (10) | 21 | Top 25 | Estonia |
| Jason H (1) | 22 | Top 25 | United States |
| Leszek Grudzień (0) | 23 | Top 25 | Poland |
| Tony Winn (2) | 24 | Top 25 | Australia |
| Frank Schmitt (5) | 25 | Top 25 | Germany |
| Peter Schmidt (3) | 31 | Correctness | Germany |
| Joaquin Gonzalez (5) | 32 | Wildcard | Spain |
| Chad Lee (8) | 33 | Correctness | United States |
| Matthias Rogel (2) | 34 | Wildcard | Germany |
| Naresh Kumar (0) | 35 | Wildcard | India |
| Jan Soubusta (0) | 48 | Wildcard | Czech Republic |
| Alexey Ponomarenko (0) | 77 | Wildcard | Ukraine |
| Yuan Tschang (6) | 85 | Correctness | United States |
| Randy Gettman (10) | 94 | Correctness | United States |
| Pavel Noga (0) | 96 | Correctness | Czech Republic |
| Michal Cvan (8) | 107 | Correctness | Slovakia |
| Livio (0) | 332 | Correctness | Luxembourg |
Subscribe to:
Posts (Atom)