Guest User

Untitled

a guest
Jun 15th, 2025
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.33 KB | None | 0 0
  1. import requests
  2. import json
  3. import math
  4. import random
  5.  
  6. contestid = input("contestid: ")
  7. result = requests.get("https://codeforces.com/api/contest.standings?contestId="+contestid+"&showUnofficial=true&participantTypes=CONTESTANT,VIRTUAL,OUT_OF_COMPETITION").json()["result"]
  8. problems = result["problems"]
  9. standings = result["rows"]
  10. numusers = len(standings)
  11.  
  12. numsolved = []
  13. for i in range(len(problems)):
  14.     numsolved.append(0)
  15. for i in standings:
  16.     for j in range(len(problems)):
  17.         if i["problemResults"][j]["points"] > 0:
  18.             numsolved[j] += 1
  19.  
  20. avgrating = 1200
  21. #avgrating = 1125 for div 2
  22. #avgrating = 1200 for div 1 + div 2
  23. #don't use this for harder contests where the majority of participants are master+
  24. pctsolved = [i/numusers for i in numsolved]
  25. print(pctsolved)
  26. diff = [avgrating for i in problems]
  27. for i in range(len(problems)):
  28.     # diff[i] = 800 - 400*math.log((1-pow(0.5,(3500-avgrating)/400))*pctsolved[i]+pow(0.5,(800/(400-avgrating))*(-2700/400)))/math.log(pow(0.5,800/(400-avgrating)))
  29.     diff[i] = 800 - 400*math.log((1-pow(0.5,(3500-avgrating)/400))*pctsolved[i]+pow(0.5,(3500-avgrating)/400))/math.log(pow(0.5,400/(800-avgrating)))
  30. for i in range(len(problems)):
  31.     link = "https://codeforces.com/gym/" + contestid + "/problem/" + problems[i]["index"]
  32.     print(problems[i]["name"], diff[i])
Advertisement
Add Comment
Please, Sign In to add comment