1 / 27
Mar 2014

Here is the fine place to discuss how to integrate the big variety of problem into the great spoj adventure.

We have classical, tutorial, riddle, challenge and partial section in the main problem set.
We too have spoj.com/BSCPROG/13, a place with simple problem and public solutions.

==
The are some psetter who set problems on various contests, some of them have public solutions.
What place should we reserve for clones of that kind on spoj ? (I really don't understand why such thing happens, but ... it's another story)
* classical doesn't suit for that, as it impact directly the ranking system.
* tutorial appear disrespectful, as some of the problems are well written and interesting.
* other sections doesn't fit anymore...

Please share your ideas about this (in)valid fact. (choose)

Amongst possibility, we have :
* A new section where solutions are public, like the original problem. It sounds good for me.
* A rewording of description, and a problem code that doesn't link immediately to a 'solution'. Sounds good too.
* Change constraints to make a new problem, harder, so that public solutions won't pass. (sad for python users, but sounds quite good)
* Modify them as challenge problems, so 'public' solution will give few points, and good ones give real points. Sounds very good ; it's more work for psetter.
* Do nothing. Seriously ?
* ???

Hope to be constructive.

=== I will be off-line few days, I hope we'll have many great answers soon.

Don't forget to have fun wink

  • created

    Mar '14
  • last reply

    Dec '14
  • 26

    replies

  • 1.9k

    views

  • 12

    users

  • 2

    links

Its good to discuss things here.

I am solving problem on spoj since long time and I love SPOJ more than any programming sites.

  1. I disagree Francky to move those problem whose solution is publicly available, Because SPOJ have many problem from ACM ICPC and other programing contest and all solution are publicly available.

  2. But one more thing I have seen on SPOJ, if the problem's solution is publicly available many people just copy and paste it and effect the ranking system directly, I don't care about points and rank, sorry for those who cares. Because SPOJ is not a live programming contest, but it is place you can learn various things in a great way.

  3. But I agree with Francky to change the constraints of the problem( with large IO and strong test cases with tight time limit ) and keep them in "Classical section so that
    both problem solver and setter can enjoy .

  4. I don't think others section suits for these problem, because many people only look at classical.

NOTE: I am not a native English speaker sorry for bad english.

For anyone who wants to voice their opinion but is having trouble with registering for an account or navigating the forum: The reason is probably that some old links use "spoj.pl", and recently that domain has stopped redirecting automatically to "spoj.com", resulting in timeouts. When registering, simply copy and paste the activation link and change ".pl" to ".com", and it should work. I've sent the admins an email about this issue.

First of all, Thank you so much cyclops (Mitch Schwartz ) for providing me information regarding login in Forums.

  • A new section where solutions are public, like the original problem. It sounds good for me.
    This is a good idea, I am completely in support of the idea =D.

  • A rewording of description, and a problem code that doesn't link immediately to a 'solution'. Sounds good too.
    This might be difficult for people who want to upload the entire contests. Changing wording or solution in a single problem is easy, but in the entire contest problem set, it becomes quite a task. For a single problem, this is also a good idea.

  • Change constraints to make a new problem, harder, so that public solutions won't pass. (sad for python users, but sounds quite good
    Making constraints harder is a good idea, but again the thing is people will like to make their contest best at the first time itself, so they will try to come up problems
    with as hard constraints as they can in the online contest itself. So it will be difficult for them to make constraints hard again for uploading on spoj only.

  • Modify them as challenge problems, so 'public' solution will give few points, and good ones give real points. Sounds very good ; it's more work for psetter.
    Quite a task for problem setter. Again not possible for somebody who wants to upload the contest.

  • Do nothing. Seriously ?
    Actually according to me, this is the best solution. Let me give reasons behind this. Firstly I assume that main premise behind the discussion is that problems with publicly viewable solutions should not be added due to cheating issues. If I am wrong in my premise, then please tell me correct one.

I really dont feel like cheating being a major issues in SPOJ. It depends on person to person, some person might say that decrement of only 3-4 ranking due to cheaters in my rating is bad, some dont care. Mainly people try to solve problems for learning purpose. Cheating in a online contest could be more serious issue.

  • Benefits of having public solution*
    In many cases having public solution is a good thing, Many of SPOJ problems have publicly viewable solution, I have myself learnt a lot from them. Having a publicly available solution with editorial is really a good problem set for learning.

Negative effects in upcoming days on SPOJ problem set
Number of problems to be added on spoj are going to be reduced due to the decision of moving problems into tutorial section. Spoj will miss a lot of good problem sets as people might not prefer to add them into tutorial section. If you see the current classical problem set, it contains almost all the problems which have publicly viewable solutions. Many people add problems from codechef, codeforces, ACM contests and other contests which have solution available. The problems usually are of very good quality. So applying this rule, will reduce the number of quality problems.

Will it work?
Now a really important point, are we really going to remove number of cheaters due to this decision. I believe NO. Many people still upload their solutions on blogs. You can almost find out solutions of many problems by just searching "problem_code spoj solution" on web. So it is not really easy to stop that.

Another possible solution and its shortcoming
Another good solution is to create another section with problem solution publicly available, but I think we should still reward points for that too, otherwise number of people trying those problems wont be too much. But I still believe that publicly available solutions deserve as much point value as other problems.

Few suggestions to problem setters
Few suggestions might be given to problem writers to check if somebody is submitting solutions directly or not. It is a tough thing to check, so nothing much can be done.

Summary
In summary, I would say that this step will do more BAD than good to SPOJ. Restrictive policies are generally not good for long time. We should not make rules simply to avoid some handful of cheaters. I believe that cheaters does not effect ranking as much this decision will hamper problem quality on SPOJ. Cheaters might do a more change in college ranking but individual ranking wont be affected much. So the tradeoff between the two situations is so distinct that I conclude that best decision will be to "DO NOTHING".

P.S. I would really appreciate if SPOJ would have done the discussion beforehand and implemented it later, They have implemented the decision for IOPC problems and discussion on the decision is going on here after its implementation. It has personally disappointed me as a SPOJ user. I think they should have let those problems go into classical section and discuss the issue here or they might have told the users already about such upcoming policy. Nevertheless I still respect the amount with which Editorial board have pursued this issue and having a public discussion is always great smile

@Francky
What place should we reserve for clones of that kind on spoj ? (I really don't understand why such thing happens, but ... it's another story)

Trying to reply on your "but ... its another story" remark. I think many people have already uploaded cloned problems on spoj. As number of contests happening on spoj is rare thing, so getting brand new problem for spoj is really hard. According to me, level at which SPOJ is now would not have been if cloned problems would not have been allowed on the site. Spoj is for archive problems. Most archive problems are cloned ones.

Good to see that. +1
And to make it clear, when we spoke here of 'public solution available' problems are those who are clones of problems with original contest with public solution, not those (numerous) for which a solution can be googled ; cheaters are unstoppable, [color=#FF0000][b]it's not the purpose here.[/b][/color]

Another point for creating a new section where problems have on spoj public solution (it already exists here) :
The whole set (edit: clones of a contest) of problem will be no more separated between easy one (or duplicates) in tutorial, and real new problems.
It would offer a better view of the 'contest' as spoj appears for someone as an archive of most of problems available. I think it's not the vocation of spoj-classical, but rather spoj-whole.

@all
Please make constructive propositions, although the 'do nothing' option isn't eliminated, we have to do the best for spoj.

One point that hasn't been mentioned yet: There is the notion of grandfather clauses, and the policy that is eventually decided for this issue doesn't necessarily need to be applied retroactively to problems that were already added to SPOJ before this discussion, to be fair to the problem solvers and problem setters who invested time in those problems already. It's a point to be considered for policy changes in general. I would say the grandfather clause could also apply to problems published in the last couple weeks and in the following couple weeks while the discussion is still ongoing, e.g. the IOPC2014 problems and just now the BTCD2014 problems, which we have put temporarily on hold until the issue is resolved.

The time frame I am envisioning for this discussion is: I would like to see the issue resolved by the end of March. I'm not guaranteeing it, but I think it's a reasonable goal, and is a decent compromise between those who want a quick resolution, and those who have busy lives and want to write thoughtful messages without being too rushed.

It seems to me like having problems with findable solutions isn't a big deal. As mentioned, this is already the case for many problems on SPOJ, and it's possible to find non-official solutions to (or discussions about) many more. I don't think it's exploited a whole lot, and if some people really do want to do that for some problems, I think it's impossible to prevent (due to the existence of so many such problems already) and isn't a big issue anyway.

It does make sense for people adding such problems to SPOJ to optionally consider altering the constraints, turning them into Challenge problems, or maybe not listing the source to make it more difficult to find solutions, but I don't think any such actions should be forced.

However, I really do like the idea of introducing a new category of problems, worth no points, with all submissions viewable by everyone (or, with an option to make your own submissions publicly viewable or not). This would give a new option for problems from past contests which some problem setters would probably like to use, and I think it would be a nice category for learning in general.

  • Jacob Plachta

@Francky @cyclops

As I had proposed my views in the light of reason of the current issue of clone of problems being not allowed due to cheating issue only. But as Francky says it is not, I am very much confused about agenda of the the issue. Please clarify your reasons about why not allow clone problems and why it will provide some benefit to spoj? I am totally kind of clueless about premise of discussion now.

Each possibility suggested before has some pros and cons

* New section where solutions are public
The problem with this is if you get points for solving these problems, a lot of user will just submit all of the problems without even understanding the solution. But if you don't get points, it's not much different than putting these problems in tutorial, still great for "bundling" purpose though (so they don't split between classical-tutorial).

* A rewording of description, and a problem code that doesn't link immediately to a 'solution'
I think this is good, but it requires some work (more so if you migrate the entire contest). Rewording a mostly straightforward problem is not easy either (many encryption problem).

* Change constraints to make a new problem, harder, so that public solutions won't pass
Some problems already have very good constraint that expanding them would lead to problems like biginteger or I/O optimization, which is totally unnecessary to make the problem harder. Also, some solutions are already very good that no matter how you increase the difficulty, the official solution would pass.

* Modify them as challenge problems, so 'public' solution will give few points, and good ones give real points
This is good especially for the competitive minded. I suggest everything equal or worse than the official solution gives 0 point, so only better solution can get points. However, this requires even more work from the problem setter than just rewording.

* Do nothing
It's ok to do nothing, but this encourages more cheaters (there are already a lot of them, but still).

Regardless of the choice, I think it's better to create a new section for contest problems. It makes it easier to find other problems in the contest, and also not clogging up the classical section with contest problem (not that there's anything wrong with it, but I prefer if the problem setter creates the problem himself). Other than what Francky posted above, I have some other suggestions:

*Make it self-sustaining
Basically user can add test data for the problem if there is at least an accepted solution that will not get accepted with the new test data (kinda like codeforces contest). This saves a lot of trouble for the problem setter. Implementing it might be hard though, since the site might have to be rebuilt to be able to do this. The other problem with this is if the official solution is not 100% correct, but that can be taken care of somewhat easily.

*Only accepted user can see the solution
But if the solution is already available somewhere why would this matter? Well for this to be effective than a difficulty increase might be necessary so that the official solution won't pass (this brings the same problem as of the earlier suggestion)

While the suggestion by all the people here is good, implementing it might not be so easy, especially for older problems. So at the end of the day, this might be up to the admins to decide.

Please take time to read quietly.
1) Nobody wants problems not being allowed. Where did you read that? We want the best place for such collections at spoj, but maybe not in classical, nor tutorial.
2) It's not a pure cheating issue : what is the meaning of propose a problem for which the solution is "indicated" by the code ? At least if the problem-code wasn't related to the original contest, and maybe the title changed... (and, please do not use capitalizing ; it's like shouting).
The goal isn't to give more job to psetter, nor EB members, nor admins. We've got enough for sure.
3) Wouldn't it be nice if such collections were grouped and solutions public like the original contest?
4) And it would be useless to separate tutorial/serious ones, the group stay compact.
5) We are waiting for constructive propositions. Thanks in advance.

The answer will perhaps be : do nothing, but better is to ask for everyone's advice.

@francky:
As you said it is not a pure cheating issue. So people will try solving the problem genuinely and having a reference for learning is always great. So it seems like they deserve as much as to be in classical than "actual" classical ones.

I still feel that most of the problems essentially achieve this status of having an editorial and a solution code/codes in some time. So only difference I see is the amount of time in that. Nowadays forums for problem discussion are not much active, so that might be a reason for more increase in duration of that.

Making a separate section with all solutions public in it, should be a great idea, But it is also highly suggested to have all the problems of a contest grouped by contest name itself. It will also be a great learning place. Currently some of the contests problems of spoj allow public viewing of the solutions, there interface of contest is excellent. It can be simply used for this purpose, only new thing is to do is to allow submissions on that.

There might be a slight issue of people not attempting those problems as they wont give any points to them and problem setter stop uploading the problems because of low attraction on their problems, or may be participation might increase due to grouping and public solutions available.

P.S. I was using capitalizing inter-changably with bolding of the words. As I was new to interface, so I was not acquainted with it:( . I am sorry if looked like shouting, I hope you understand that it was not the purpose.

I appreciate what you're up to francky.

I have remained silent on the topic (as well as the cheating topic) since it doesn't particularly interest me. I don't focus at all on the scores and helping people learn on the forum. If you look at my history you will notice that I don't solve a whole lot of problems on the main site, but others problems on the forum..

That being said, I do like the idea of having public viewable solutions for some problems. There is a lot of value in being able so see someone else's code and see how they solved the problem. I do not think that this should be done without the permission of the solver. It should be known that a solution would be public before the solver submits. Changing this parameter later should not change the private status of the solution. Many users have canned code that they would not want to make public (like my C# Fast Input method)

I also like the idea of having a repository of problems, such as USACO or GCJ. I don't personally set problems so I don't know how difficult or easy this would be, but it would really be frustrating to have a partial set of problems for a contest but not all of them.

Keep up the good work.

We've received some more thoughts and I want to share :

We perhaps can't do anything, it's true.

What are other propositions to improve the quality of SPOJ problem set ?
Please be constructive.

It appears this topic is coming from the premise that problem clones are inherently a bad thing, which I do not consider to be true, so I'll give my opinion here:

You can either treat SPOJ as a competition in and of itself (as many of the people that solve lots and lots of problems do), or you can consider this to be a space for training with a huge problem collection, as seems to be the original intent (the first classical problems already have a lot of "clones" from other competitions, for example). Under that second perspective, "cheating" is a really silly thing to do, since you gain absolutely no knowledge from submitting other people's solutions, and the clones are a considerable benefit to the quality of SPOJ's problemset.

Having that said, the idea to split them into a different problemset for training purposes is great, and would satisfy pretty much everyone. Between having the problems and not having them at all, I like having the problems better.

Where did you find something that let you think that ????? Please be constructive, and don't make false assert, please.

  • Problems with public solutions can't (for me) belongs to classical section, but I hope those problems can take a full good place in spoj. Tutorial section don't suit for that, everybody accord to that.
  • Integrity of the whole set is very good, a new section for those contest-clone problems won't split the set anymore.
  • For those where a public solution is available in the original contest site, I think we can't do anything else than : make all solutions public too for those problems, and/(or unless) don't give points for this set in the ranking system.
  • spoj have a great educational purpose, we have to improve it : such a new section would well participate.
  • The ranking system is not perfect but we can't destroy it. Those clones in classical threatened it.
9 days later

Thanks everyone for expressing your thoughts on the matter. I know it's a bit late, but here are my views:

I fully agree with Francky from a problem setter's point of view. Why would I ever set a problem where a simple or obvious search would lead immediately to a working solution that can be copied and pasted without even reading the problem? To me it doesn't make sense. I prefer to encourage original submissions. Of course it's always possible for an (inconsiderate) solver to publish his solution and allow others to cheat easily, but I certainly don't want this situation at time of problem publication. If that means extra work rewriting or redesigning a problem, I consider it well worth the effort.

As solver, I would like any problem to change as little as possible after it is published. There may be a petty aspect to it (in terms of recognition), but I dislike the result of my time and work "taken away". It's part of why I brought up grandfather clauses. (It seems fair not to change older problems, both for the solvers and the problem setters of those problems.) And I would also prefer not to have the rank lists of problems I've solved polluted by people who didn't solve the problem, but I recognise it as something I have very little control over (but the problem setter has a bit more control over it), and I usually don't pay much attention to that.

As EB member, I want a clear policy that I can follow without thinking overly hard about it, and that has some official statement somewhere so that I can refer any (unhappy) problem setter to look there as an explanation of my action. (And of course I don't want to enforce a policy I don't agree with.) For here, I think creating a new section for clone problems with publicly available source would improve the quality of SPOJ, and the idea I like best is to let users decide on a per-submission basis whether their source will be public, but it may take some time for admins to set this up (if they are agreeable to the idea).

Until now, we haven't brought admins into the discussion, because we wanted to hear opinions from the community and allow natural discussion. Now as it seems everyone interested enough to state their opinion has stated it, so we've emailed the admins and are waiting for their reply. Please hold tight a little longer. We would like to hear the admins' opinions on the best proper action to take with this issue at this point.

1 month later

Issue was of 2 March, Today we have 4 May, Entire 2 months have passed. Please take action regarding the issue.

We had a very short answer from admins on 01/05/2014.
They are working hardly on interface, it takes many times, and answers will be provided after.
We have no other information to share.

2 months later