By adityagamer, history, 2 months ago,

I see people frequently criticizing the problems which is implementation heavy or requires too much mathematical equation. I feel all the problems are good.

I want to others opinion on what is a good problem. So what are qualities of a good problem according to you?

• +64

 » 2 months ago, # |   +13 http://oi-wiki.com/contest/problemsetting/(in chinese)
 » 2 months ago, # |   +40 I like problems that make me go WOAH after I realize the solution
 » 2 months ago, # | ← Rev. 2 →   +3 Having something exciting story or problem statement indicates a good problem. Seeing some problem statements is long and tedious! It will be a good problem if an author maintains the main goal by converting an interesting story. [self-opinion:)]
 » 2 months ago, # | ← Rev. 2 →   0 I think first 3 problems of global round were normal just like any other round felt like they could swap A and B but it wasn't necessary anyways.I think these stupid people just got negative delta and started spitting on the official blog. C wasn't hard everyone knew it's dp so where's the problem.I can't say about other problems because i wasn't able to solve them but many of those who are spitting on that blog could not even solve 2-3 problems. The only problem is in past rounds is weak pretest and i think testers are responsible for it. Umnik's comment was like a support to these idiots. I know he was just being honest that the round was an average round not like a good global round but still these newbie pupil better go to solve some problems rather than saying that the round was bad. Edit :- I like those problems in which these newbie and pupils attempts but struggles to pass
•  » » 2 months ago, # ^ |   +26 In my opinion a good div2A should be solved by almost everyone in under $3$ minutes and have a statement that is easy to understand in the first $15$-$30$ seconds. Apart from the fact that A doesn't do either of these, it also has a very weird premise.The statement of B repeats itself unnecessarily imo. It could have been written in $2$ sentences: StatementYou are given $n$, $k$ and $k$ integers $s_{n-k+1},s_{n-k+2},\ldots,s_n$. Your task is to find if there exists some array $a$ of $n$ elements which satisfies both of the following constraints at the same time: $a_1 \le a_2 \le \ldots \le a_n$; $a_1+a_2 + \ldots + a_i = s_i$, for all $n-k+1 \le i \le n$ C is very standard and has no reason to exist, as Um_Nik said in his comment. I might be biased against this problem though, because I lost $20$ minutes by forgetting that $(-2k-1)\%2=-1$.The idea behind D is very contrived and I'm not sure if it's even possible to make an easy to understand statement for it. The solution is pretty clean though.I'm not going to comment on E-H because I had enough of this contest after solving ABCD.
•  » » » 2 months ago, # ^ |   0 You are correct. I am completely agree that A should be very easy.But still the problems are not that bad. C is standard but still many people struggled in it that means they are going to learn something from this problem.
•  » » » 2 months ago, # ^ |   +8 To obnoxiously fill your comment, E is problema trei ziua 2 baraj juniori, F ~ D, G is cute, and everyone know about H
 » 2 months ago, # | ← Rev. 2 →   0 Good problem:Balanced between analysis and implementation. It is not fun when you need a lot of analysis just to write a single line of code. Just like it is not very fun when the solution is obvious and requires and only a careful implementation from the beginning.Easy to understand. Sometimes I feel i need to keep overwhelming amount of info in head just to understand what I'm askedAlso I prefer problems to be solvable with some algo/ds rather absolutely adhoc. I kind of understand why most problems on low levels are not like that but it does not change my preferenceSpeaking of mathematical equation, The problem with such problems is that most programmers don't have a good mathematical background.That said it is possible to make a bad round even with good problems.
•  » » 2 months ago, # ^ |   +2 It is not fun when you need a lot of analysis just to write a single line of code I'm curious if you could further develop this idea
•  » » » 2 months ago, # ^ |   -6 I think it is self-explanatory but let me tryEven though the problem should require thinking, I want it to stay a coding competition to some degree,I haven't thought about it initially but yet another issue with such problems is that it is too easy to cheat and not be caught. Indirectly related but such problems (with very short solution and intended long analysis) are often guessable or searchable (at least on my level). Though it is probably a farfetched argumentI don't think I can list some examples off the top of the head though.
 » 2 months ago, # | ← Rev. 3 →   +45 Having a short clear statement with no useless stories which no one cares about Having pretests covering at least obvious mistakes (last edu problem B for example had "non negative" written in bold and had no tests covering this lol). Not being a cancer problem, this includes having trash or unnecessary case handling (that’s the case with last global round i guess, problems B and C had negatives only to annoy people and make them get WA), heavy implementation (most of us know how to implement but such problems result into unnecessary WAs due to small implementation details apart from them being very toxic). Not being standard (people who know the trick/topic can get it AC with < 1 min thinking, imo these problems should exist in educational rounds only). Solving the problem is fun, you get an observation which leads into another subproblem with new observations leading into other subproblems till you get the full solution.
•  » » 2 months ago, # ^ |   +1 You forgot : Having Enderman References
 » 2 months ago, # | ← Rev. 2 →   +1 Though if I abstract away my personal preferences, objective reality and specifics of this particular platformGood problem probably means just two things1) Easy to understand2) Not well-known, requires thinking
 » 2 months ago, # |   +50 I think there are various ways to say a problem is a good one. Need brilliant idea (cool ad-hoc) Hard but not need knowledge of too complex algorithm Step-by-step thinking leads to the solution (in this case, good practice pays you) Though the problem statement is simple, the solution is beautiful It's hard at a glance but actually solvable, sometimes in a simple way Typical but good for practice problems (for Div3,Div4,Educational,ABC...)
 » 2 months ago, # |   0 Short statement and a neat solution.
»
2 months ago, # |
0

Priorities for a problem to be a good problem (sorted ascendingly) :

• Has a clear statement, stories/legends should be marked with a different font like the Italic one.

• Not a completely standard problem (It may contain a mixture of standard problems as subproblems, or having an ad-hoc part, which is even better).

• Has strong pretests (Even though that's irrelevant to the idea of the problem itself, but i am talking about the whole project/problem).

• Not Plagiarized.

• Not constructive, unless the answer can be achieved or proved step-by-step, and not just guessing or knowing the pattern before.

• Not an A, B, C in a global round.

• Having an Enderman statement.

 » 2 months ago, # |   0 I like problems with short statements. This is the sole reason why I prefer practicing and giving contests on Atcoder.
 » 2 months ago, # |   +7 Let put some educational problem aside, I think a good problem should have clean statement that is easy to understand original/interesting observation or idea reasonable amount of implementation respect to the difficulty of observation/idea the problem should be "a problem" rather than some combination of two or more unrelated part(this problem is a bad example, whose solution is just doing Dijkstra then use the result of Dijkstra to do some partial ordering without caring any special property come from the result of Dijkstra)
 » 2 months ago, # |   0 Div 3 rounds is the best ,I really benefit from it specially its graph and dp problmes and most of its problems about algorithms and data structure.Unlike codeforces div 2 rounds nowadays which became bad and waste of time in unnecessary ideas .
 » 2 months ago, # |   +20 It depends on the context. A good IOI problem is different from a good ICPC problem, which is different from a good Codeforces problem.Codeforces has a short contest format; you have 5-6 problems to be solved in only 2 to 2.5 hours total.So I think a good CF problem has one or two crucial magic insights, where if you notice in then everything falls neatly into place. Ideally, the insight is ad hoc, and doesn't rely too much on advanced prerequisite knowledge.Math insights are okay as long as they don't make up the bulk of the task, i.e. there is still something "programmatic" about the problem. If the entire logic can be described and theoretically executed on pen and paper, and the program is just an implementation of this idea, then maybe it would have been more suitable for a math contest. Again, math-heavy problems are totally fine as long as having a computer is actually a crucial and not-incidental part of the task.I normally champion implementation-heavy problems, but I think short contests are a bad place for it. It's just really stressful, especially to debug.