Блог пользователя sjsakib

Автор sjsakib, история, 7 лет назад, По-английски

Hello cool coders! This is my first post on CF. This is to share a small tool I built using the codeforces api. Give it a try here: http://cfviz.netlify.com. The source is available here. Please let me know if you found any bug or issue.

Current features are:

Single User Analytics

  • Verdicts chart
  • Languages chart
  • Tags chart
  • Levels chart
  • Total tried problems count
  • Total solved problems count
  • Average and max attempts
  • Count of problems solved with one submission
  • Max AC for a single problem (It indicates in how many ways someone solved a problem)
  • List of unsolved problems

Comparison between two users

  • Current, max and min rating
  • Number of contests
  • Best and worst position in contest
  • Max positive and negative rating change
  • Compared rating time-line
  • Total tried problem count compared
  • Total solved problem count compared
  • Average and max attempts compared
  • Count of problems solved with one submission compared
  • Max AC for a single problem compared
  • Tags compared
  • Levels compared

Update: Two new features added

Two new features was added since this post was published. 1. Submissions heatmap in single user analytics 2. Common contest rank in comparison

  • Проголосовать: нравится
  • +247
  • Проголосовать: не нравится

»
7 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I (square1001) competed in 2 contests and rated 1558 -> 1673, but it says that my Max Down is 58.
Is it a bug?

»
7 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Keeps loading forever in Safari. Working fine in Chrome though.

»
7 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится

Your site says that I have solved 912 problems. According to Codeforces, I have solved 876 problems, plus 26 in gym. I guess you might counted in problems appear in both divisions twice?

  • »
    »
    7 лет назад, # ^ |
      Проголосовать: нравится -7 Проголосовать: не нравится

    What I'm doing is iterating over all of their submissions and counting the unique number of problemIds that got AC. Here I'm concatenating contestId and problem index to get problemId.

    So if somebody submits one problem from both divisions, it's supposed to get counted twice. But why would somebody do that? I'm not sure whats going on here.

    • »
      »
      »
      7 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится

      What if someone submitted to Div2 C during contest, and then submitted an improved version through PROBLEMSET after the contest, which would go to Div1 A.

      • »
        »
        »
        »
        7 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Oh yes, now I get what's happening. So you did so like 10 times in total? Because in your case it's showing 10 more problems

        • »
          »
          »
          »
          »
          7 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          I also made submissions to test if Codeforces would exclude duplicates while counting the number of problems you solved.

  • »
    »
    7 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    How do you look at the number of problems solved (according to codeforces)?

  • »
    »
    7 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится -20 Проголосовать: не нравится

    If you like solving problems, solve harder ones.

    • »
      »
      »
      7 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +5 Проголосовать: не нравится

      Thanks for your suggestion. I will get there, I'm currently solving problems in decreasing order of the number of people who have solved it.

»
7 лет назад, # |
Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится

Looks very neat.

I think it would be more meaningful to distinguish between classic rounds and other types of rounds, such as marathon ones (e.g. VK Cup 2016 - Wild Card Round 2 and Codeforces Marathon Round 1). The problem with them that usually you do a lot of submissions to be evaluated on pretests before submitting your best attempt. As you can see, this heavily impacts submission stats (the large number of skipped solutions):

Also, it would make much more sense if Div2A's and Div2B's were made into a separate entity (now, there's no distinction between Div1AD and Div2AD when counting, right?)

  • »
    »
    7 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

    Thanks for your valuable opinion. But unfortunately doing so doesn't seem possible to me with the information CF API provide :(

»
7 лет назад, # |
  Проголосовать: нравится +21 Проголосовать: не нравится

i liked the idea and by the way i think it will be perfect if codeforces puts some of these numbers in our profiles

»
7 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

The best rank of uwi appears to be 0.

»
7 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Woah! It shows all of my unsolved problems. Really helpful.

»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

sjsakib Can you tell me how did you pick up unique problems from the submissions when the same problem was in Div1 and Div2 and the user had solved it in both the divisions? Also, if the user has solved the problem in both Div1 and Div2, which one will you consider in making the bar chart for index wise solved problems (Will you put it in both A and C (if it was A in Div1 and C in Div2) or will you put it in only one of them)? Thanks in advance.

»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

How do I get the number of problems solved at each rating??

»
6 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Please add a "**acceptance heatmap**" in single user analytics, if it possible.

»
5 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Thank you for your amazing creation...!