1 / 20
Nov 2004

The ranking lists Pascal at position 4 for problem Pawns, and Robin at position 5. It should be in the opposite order, since Robin solved the problem earlier with the same score as Pascal.
And by the way, I don't understand why no double score for problem phrases was given. Either Tomek or Frank should get this double score, depending on if Tomek's submission is evaluated as correct or not. When I read the new rules, I thought that after the end of a round it is possible that the input order is permutated and the programs evaluated again.
That doesn't mean I am a supporter of double points, but I think if double points are awarded for the other two problems of round 1, why not for the third?

  • created

    Nov '04
  • last reply

    Feb '13
  • 19

    replies

  • 2.0k

    views

  • 6

    users

  • 3

    links

What a stupid bug, thanks for spotting it. When sorting solutions, a < b when a.score < b.score || (a.score==b.score && a.date>b.date). Somehow, force of years of habit made me write a.date

I think the situation is fairly clear now and shouldn't arrouse anyone's objections.

Oh come on! Change the input data for no other reason but to take points away from me?

What if you find some other solution for some other problem which does not pass all possible test cases, but gets accepted - are you always going to change the test data to fail that solution?

What if you find some solution which works for all possible test data, but is optimized so that is works particularly fast for the actual input, but slower for other inputs - are you going to change the test data in that case, to make that solution run slower? From this:

it seems this is not allowed under current rules. I could have easily submitted such a solution for PHRASES if I knew that such a change in rules was coming.

Alternatively, I could have submitted a solution which works for all the permutations and subsets of the input - but then of course the rule change would be different in order to fail that solution.

The nice thing about contests like this is objective, automatic scoring, according to clear rules. By changing the test cases after looking at the solutions, you are destroying it. Subjective criteria are now used by the judge to decide how to score solutions.

By the way, my PAWNS and PSPHERE will not work if you permute the inputs unamused

Not at all. When creating the ranks, I didn't add any bonus points at all for PHRASES. I changed the input data, because Adrian Kuegel rightly pointed out that Frank Raiser deserved double points for this problem.

The rule about doubling scores for first places has been removed. The additional points given to you, Pascal and Frank are merely meant to be some recompense for the time you took optimising your solutions.

Nah, we've learned a lesson. We are going to try and keep the test data large enough to prevent guessing. No more permuting is planned.

OK, I admit - I was in a filthy temper when adding this rule. It says 'preserving runtimes', it doesn't say 'preserving correctness'. Everybody plays fair, sort of smile.

On the whole, I am not sure whether we aren't missing the point of this contest here.

Challenges are governed by slightly different rules. See e.g. SOLSTRAS, which has no input at all. Similarly, for PSPHERE guessing input is (at least from my point of view) fairly harmless, I was expecting solutions to make use of the limited value of n to do some precomputation (though possibly less than you did smile ).

As for PAWNS I am frankly speaking a little disappointed, since only Adrian Kuegel's program was capable of solving more test cases than a human could solve within the time limit after a single short glance at the gaming board.

To cut a long story short: I think that the current ranks are fair and I'm not planning on changing them unless a bug is spotted.

Since I edited my post multiple times, and you replied to an earlier version, I will say again what I really mean.

I am not very disappointed about my score (I'm in the lead after all).

The real problem is that:

  1. the rules were changed and then applied to a round which had already finished

  2. subjective criteria are used to judge solutions; this is what really bothers me

It was decided my PAWNS solution is OK and PHRASES is not OK; somebody else could think that PHRASES is OK, PAWNS is not OK (after all I did not have any automatic solver for PAWNS). It's subjective.

What I really like about programming contests is that there are clear scoring rules and the scoring is done automatically. This is what differentiates them from math contests, say.

By having the judges choose the test data however they like after looking at the solutions, this is destroyed. They might like Polish solutions better, for example.

It would be much better if you said - we will always randomly permute the test data. Or - the final testing data will be always different. But now it looks like: we will change the test data if we do not like the ranklist.

The rules were changed before the round had finished. So you could have optimized your program in another way, like for example Frank did.
I agree that the decisions seem very subjective in this case. It was even more subjective before; I don't know if you had seen that first there was no double score given at all for this problem.
But I think, now as there won't be any more "double points", there won't be any problem like this again.

The only alternatives to what we've done seem to be: accepting anything that gets accepted by the judge (even an exploit), disqualifying people, or rejudging everything. In the last case, applying an online judge seems useless, and we get a different type of contest.

This is not really important, but there is no way the test data to PAWNS can be permuted without violating the problem description. Read it carefully. Otherwise I would happily have done it.

Don't tell me you make a practice of this type of submissions very often or I won't believe it smile.

All contests I know of preserve the right to change test data in the event of exploits, and that is just what we did. The right to change test data has been in the rules of the League from the very start.

We won't change it, unless we really have to. As I've said, we've learnt a lesson in this respect, for which I'm personally grateful to you (at least to some extent wink ).

More precisely: if we don't like the solutions, which cheat the judge.

Since in problemset 1 it was easy to cheat it, we took the necessary measures:

PHRASES - permuted
SOPARADE - permuted
CUTSQRS - submissions ok
PSPHERE - submissions ok
PAWNS - couldn't permute.

Now, we are taking much more care. I trust there will be no need for anything of this sort in problemsets 2-11.

I am not sure about this. There could be other reasons, other than having the best time, to try to learn something about the inputs and then write a program optimized for these inputs.

For example, some algorithms might not give a correct answer for all possible inputs. Or not run in time for all possible inputs. Or even one might want to solve the problem by hand, like I did for pawns, and then write a program which runs only for one input.

Now it is not clear what is going to be allowed and what is not going to be allowed.

I would prefer "everything is allowed". Just because then there are no borderline cases and no need for the judges to make controversial decisions.

My PHRASES program works for only one input. Some programs work for half of the inputs. Others work for all inputs but one special case. There is no clear borderline here to decide which of these are OK and which are not.

There is no need for the borderline if you say what the original rules said - everything which gets accepted is OK.

The rules were only patched up to help us survive problemset 1 (when it started, we weren't expecting any trouble).

From this problemset onwards no problem data will be changed (unless there is an error, then erroneous problemsets will be removed). Nothing will be permuted. Problem judges may be modified in a way which doesn't affect standings. Exploits like submission from multiple accounts or hacking will end in removal of submissions and/or disqualification.

Is this good enough?

I don't really think I have anything else to add in the matter.

If you decided my solution for PHRASES (and possibly PAWNS) was cheating, then instead of permuting test cases you should have disqualified the solution. The solution was not disqualified, so in the discussion above I assumed it's legal but the judges simply didn't like it.

Which of the following is cheating?

  1. Learning all the inputs, submitting a solution which contains all the answers to the inputs precalculated (OK, I know it's cheating already, but you really should put it in the rules because it's not obvious)

  2. Precalculating all the possible answers to all possible inputs

  3. Learning the first input, submitting a solution which contains the answer to that input precalculated

  4. Learning the general characteristics of the input (for example, the sum of n's) and then optimizing the solution for that.

  5. Checking if there are any 1's in the input (that's what Adrian Kuegel admitted to doing for Hanoi)

I would much prefer if all of these were allowed. If some are allowed and some are not, I will never know how far I can push it.

It does not make the contest worse if all of these are allowed, in my opinion, as long as the input is large enough.

I am not sure if you noticed - my solution contains the answers ONLY for n=5, n=7, n=11, n=21, ..., n=802, n=1000. Otherwise I would never fit under 50KB.

You needn't push your point, it is clear enough.

The contest looks like this:

Problemset 1: Informal contest, with an informal atmosphere, which had to change into a formal contest due to the approach of 3 or 4 contestants. Please consider it closed.

Problemsets 2-11: Formal contest with formal rules. You have 100 submissions per problem. Don't use multiple accounts (in any form!), don't hack the site. Anything you score is yours.

I can't put it any plainer than this.

I know that I may sound like I am trying to get unearned points (and also in a small contest with a few contestants and no prizes...).

I would really like to see this website grow into the best contest site, and for that good rules are a must. For sure here the problems are nicer (check out Panic in the Plazas, i really like the problem), bugs are fewer and the website looks better than acm.uva.es/p, so there is potential.

Heh, am I too serious about it question I was trying to get the best possible score, and thought that a BASH submission would be kind of fun. Well if I was told - don't do it, it's an informal contest and we don't like what you're doing - I would be happy to have my submission cancelled.

I can only hope that making this a more serious contest will be for the better smile

Well, we new it would have to happen one day, we just weren't expecting it quite so soon and quite so abruptly smile. But, its probably for the best, and all suggestions of further clarifications of rules are always most welcome. Once again, I would like to thank you and Adrian Kuegel for your contribution to this aim.

The discussion that was slowly turning into a battle, fortunately became "kind assistance" with the contest rules stuck_out_tongue

Your website has proposed a new kind of contest. Apparently it's edition VI, but I personally had never before seen a contest where you could test your program on the actual input as many times as you wanted with no penalty, and the program only had to work on that input in order to get full score.

I thought it was kind of interesting and tried to come up with a strategy. Since it's a contest where you try to score points and not real-world programming where you try to write correct programs, that's what I came up with. I seriously did not think there was anything wrong with that (I wouldn't have made it so obvious by submitting a BASH solution with 0.00 time if I was trying to cheat). At some point Adrian (Kuegel) also said that it was smart and that I deserved the first place smile

Ok, now let's get on with set 2, it seems like nobody is able to solve Jewels...

3 years later

Trochę się pobawiłem i wygląda to mniej więcej tak:
//Rozwiązanie zadania: https://pl.spoj.pl/problems/RNO_DOD/

test = gets.chomp.to_i
while(test!=0)
suma = 0
n = gets.chomp.to_i
linia  = gets
tab = linia.split(" ")
for i in (0..(n-1))
suma += tab[i].to_i
end
print suma.to_s+"\n"
test = test - 1
end
5 months later

Widze, ze post nie doczekal sie odpowiedzi, a tez chcialem zadac to pytanie. IMHO bug w tresci unamused

4 years later

Link do zadania: pl.spoj.com/problems/CANTEEN/
Trzeba zastosować się do tych rad - jeszcze raz uważnie przeczytać treść zadania. Mimo, że udzieliłem takiej rady, sam zasugerowałem się, że zupę dostaje się bez kolejki, a dopiero po drugie danie trzeba stanąć w kolejce i pokazać karteczkę - tak jak to było za moich dawnych czasów studenckich.

A to odpowiedź na te dręczące od 5 lat pytanie bez odpowiedzi wink