sjsakib's blog

By sjsakib, history, 8 years ago, In English

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

  • Vote: I like it
  • +247
  • Vote: I do not like it

| Write comment?
»
8 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    8 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Yes it was a bug. Fixed. Thanks a lot. I was counting lowest rating change as max down. In your case you don't have any negative rating change. So your lowest rating change was being counted as max down.

»
8 years ago, # |
  Vote: I like it +5 Vote: I do not like it

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

»
8 years ago, # |
  Vote: I like it +4 Vote: I do not like it

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?

  • »
    »
    8 years ago, # ^ |
      Vote: I like it -7 Vote: I do not like it

    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.

    • »
      »
      »
      8 years ago, # ^ |
        Vote: I like it +5 Vote: I do not like it

      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.

      • »
        »
        »
        »
        8 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        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

        • »
          »
          »
          »
          »
          8 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    8 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    8 years ago, # ^ |
    Rev. 3   Vote: I like it -20 Vote: I do not like it

    If you like solving problems, solve harder ones.

    • »
      »
      »
      8 years ago, # ^ |
      Rev. 2   Vote: I like it +5 Vote: I do not like it

      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.

»
8 years ago, # |
Rev. 2   Vote: I like it +8 Vote: I do not like it

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?)

  • »
    »
    8 years ago, # ^ |
      Vote: I like it +3 Vote: I do not like it

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

»
8 years ago, # |
  Vote: I like it +21 Vote: I do not like it

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

»
8 years ago, # |
  Vote: I like it +3 Vote: I do not like it

The best rank of uwi appears to be 0.

»
8 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

»
2 months ago, # |
  Vote: I like it 0 Vote: I do not like it

** If the link is not Working for you, try :: https://cfviz.netlify.app This is currently working **

  • »
    »
    2 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I've used the link and found it backed to initial page after input while using "virtual rating change".