Please, CG, remove the T-shirt for the first of each language

I there
I’m in love with CG contests, it’s way more fun that any actual game I’ve ever played.
The first I did is CSB, and I always placed fairly well but quite distant from any prize.
Since the competition is fierce, and the leaderboard it’s topped by very good coders, my only chance to get a t-shirt is to make a port of my code to some obscure language, like rust or ocaml.
Or, since I’m a pythonista, doing a last minute shift from python3 to python2 because there is less people there.
It’s terrible. Right now (45 minutes to the end of codebusters), I could shift to pascal, submit the code of the sample provided, lose every single match and qualify for a t-shirt, since there is no other player in legend league playing pascal.
I will not do this, because i would feel like a cheater, but maybe someone else will do that.

So please, remove those language-specific t-shirt, and maybe make a bigger pool for the general ladder (top 100?)

and if you want to send me a t-shirt for the fair play, I’d love it :smiley:

1 Like

Hey,

Some people tried it the last contest :wink:

Saturday 2, 14:20. Winning T-Shirts

This time, the top 50 players will be awarded a CodinGame T-Shirt. For the previous contests, they were given to the top 10 players only.

As usually, you can also win a T-Shirt by ranking first in your programming language. However, we’ve noticed that some players took advantage of leagues to change their programming language and submit a poor AI once they achieved Legend. This time we’ll be checking this kind of behavior!

3 Likes

oh, so they probably check for this kind of “cheaters”. Still, probably, in an afternoon I could have ported my code to perl, without changing the logic, and so win a t-shirt.
That would have been legit, and totally not fun.

I agree here.

This is a lot of developers who in top50 and also have top1 in their language, so they can pretend on two T-Shirts. If I will be in same situation, I will be happy to get one and would be not so sad if someone from top100 will get another one.

And actually top100 is most valued than top1 in language.

So, +1 for get T-Shirts for top100, instead of top50 and top1 in language.

1 Like

only one T-Shirt is sent :wink:

If you manage to be first in Perl this way, it means you’re good in Perl, so I would see no issue in you winning a T-Shirt like that.

Are you thinking it’s a “real” issue only because of the league system ?

I’m not saying it’s unfair. I’m saying it’s not fun.
On the last day of the contest, I have to decide if I want to continue improving my bot, or pass a boring day doing a port in some language people (including probably myself) don’t like.
I’ve never won a t-shirt (sometimes got very close to it in python but nah) so I’d like to have one, and so the boring porting day is tempting.

Well the best Pascal code was ranked 441 in the contest and there were only 4 submissions in pascal. If someone has a top 100 solution in any other language (or capable of writing one), I think it’s a big enough margin and it wouldn’t require much skill to port parts of your code to pascal just to beat 441. The important part: Then you didn’t win because you’re good at pascal, but because Pascal is very unpopular and no one bothered to use it. If a language has less than a certain number of contestants, then chances are high that the winner is not a real winner, but just someone that chose that language for some reason…

My Solution would be: Instead of having a fixed number of shirts (1) for each language and making it harder for popular languages, distribute the total number of shirts (25?) according to the number of submission in every language.
Example with a total of 2500 contestants, 25 shirts:

  • 500 submissions in C++
  • 300 submissions in Java
  • 100 submissions in PHP
  • [other languages]
  • 4 submissions in Pascal
    =>
    5 best in C++ get a shirt ( int(25 * 500/2500 ) )
    3 best in Java
    1 best in PHP
    [other languages]
    0 best in Pascal

The remaining shirts can be distributed in a round-robin fashion from most popular to least popular language.
This way, some languages wouldn’t qualify for a shirt if the number of contestants is too low…

Another solution would be to only give a shirt if the first in a language is also in the global top 100 or something… The remaining shirts then can be distributed in round-robin from most popular to least popular language.

3 Likes

In fact I think you only win a t-shirt in a given langage if at least 10 people used it.
@giuliokatte I indeed recoded my solution in Rust on sunday evening to at least get a t-shirt once - it cost me probably 2 hours something, and I ended #149 which was not great but not so bad so I would feel like cheating

my bad… I have been told there is no such limit as “10 players min” :dizzy_face:

Hi,

I disagree strongly with giuliokatte !

There is 2 different problems :

  1. There is an issue in the League system : we need to have 1 league level per language and the problem is solved.
    If you are Gold in C++ and submit Pascal, your league level is set to Wood 2 for Pascal… Just memorize 1 league per language.

  2. Is Tee-shirt for 1st in language a GOOD thing ?
    I think YES ! IT IS ! Because it’s a way to discover different languages. For CodeBuster I work in Groovy because it’s a way for me to win this Tee-shirt. I had to discover and learn Groovy and I’m very happy because I know one more language.

The rules are clearly explained and if you want a Tee-shirt you can re-write your code in another language, it’s the game ! So DO IT !
It’s not always as simple as predicted to recode.

You can do a prototype of your ideas in a language and recode your work in another one for performance as example.

I think IT IS FUN to learn new languages and these rules are a good motivation to make coders discover more new langages !

So the [CG] rules are perfect ! Rules are clear and simple, that’s the best.

1 Like

There is an issue with your idea: suppose someone is coding in Bash and is 11 while there is only 5 people in bash (so 0 t-shirt), and 500 people used C++, 3 of them being in top 10.
With your idea the guy in bash will have nothing, while some guys in C++ will have a t-shirt even if their rank is not as good.
I think the system is fair as it is, maybe not perfect : it promotes using more langages than just c++ and java

Currently rank 441 gets something while 51 (or 11 in your example) might not, so… :smiley:

Ok, I like the fact that some people feel that this is a problem like me, and that some other peoples “strongly disagree” :smiley:

If you had fun porting your code, props. I find more fun changing it, and fine tuning it.
Just I don’t like the idea that if I want a prize I have to spend time doing something I don’t like. But you know what: I don’t NEED a T-shirt, I can live without. (still, I love CG, I’d really like to have one) (I got top 50 in CSB, too bad at the time T-shirts was only for the top 10 :frowning:)

If this “T-shirt for porting” can encourage someone to learn a new language, that’s a nice thing I guess.

EDIT: I like the idea of language-specific leagues!

Yes, but, they are first in their langage, not 5th in a more popular langage AND with a lower rank, which is the point of my post.

A T-shirt it’s good but I do want mugs ^^

Sorry but the 10 minimum in a language to win Tee-shirt is a LEGEND ! I can quote you an email from Frédéric Trégond to answer me about this problem :
“Hello Valéry,
En fait cette limite de 10 est juste une légende urbaine qui a réussi à se propager jusque chez nous :slight_smile: Donc tous les premiers d’un langage recevront un T-shirt, point barre.”

Sorry it’s in French but easy to understand.

So the issue you explain is not a problem.

3 Likes

Another reason for actual rules is that all languages are not well balanced to resolve one specific problem. So it’s a good performance if you win 1st in one specific language.

It’s like race boat or running : there are several ranking for different categories : size of boat, age of runners, etc.

Main ranking => some prizes
First in one category => one prize

It’s common and simple.

Excuse my language, English is not easy for me…

The difference here is that everyone can choose every language and language choice is part of solving the given problem. It’s not unfair if someone has a faster language, because everyone could have picked it.

If a problem doesn’t benefit from a fast language, it’s straight unfair to popular languages to distinguish between languages.

If a problem benefits from a fast language, choosing a slow language is a bad decision that you made in this competition and I don’t get why you should be rewarded for “being the best out of the people that made that bad decision”. I mean what’s the next step? Awarding a prize for “the best inefficient algorithm” to solve an easy problem? Because it’s harder for the guy with the inefficient algorithm to get a high global ranking than for the guy with the linear time algorithm? :smiley:


Plus I don’t think that this promotes learning new languages, it’s the opposite:
It’s saying “stick to the language you know best, no matter how bad it is in this case, we will reward you anyway”. I don’t think that anyone learns Pascal just to win a shirt…
People open to learn languages would rather take “there is a reason lots of people in the top 20 are using this language successfully, I should learn that language, maybe this will help my ranking next time”. This is what happened for me!
I used Python2 in my first contest (unpopular/slow language, easier to win shirt). But I learnt C++ through this site for the given reason and I’m glad I did, even if I probably won’t ever get a “best in C++ shirt” :smiley:

1 Like

I agree and I fully understand your point of view, but it could be a FUN CHALLENGE to find the BEST solution in another language than the “best choice”. And in that case, you could win prize because you are the best in this language. It is another way to play the contest.

Consider there are two ways to play the contest :

  1. Play for the universal BEST solution in BEST language
  2. Play to find BEST solution in one specific language

I think contest is more open and rich with actual rules. More coders could find motivation to play in several ways !