This commit is contained in:
Nathan Wang 2020-07-16 21:15:09 -07:00
commit c03342d4db
4 changed files with 116 additions and 0 deletions

Binary file not shown.

View file

@ -0,0 +1,62 @@
---
id: usaco-camp
title: Making USACO Camp
author: Benjamin Qi
description: ""
---
<resources>
<resource source="Quora" title="What is it like to attend USACO Camp?" url="https://www.quora.com/What-is-it-like-to-attend-the-USACO-training-camp" starred> </resource>
</resources>
Each of the \~26 finalists is either a **Holstein** or a **Guernsey**.
- Guernseys
- no seniors or past finalists
- two contests
- Holsteins (1/3 to 1/2 of all finalists)
- can include first-time finalists
- six contests ~~(fun!!)~~
Contests are 3-5 hrs with 3-4 problems each ~~and are frequently extended for lunch breaks.~~
## Selection
<resources>
<resource source="USACO" title="The Road to the IOI Team" url="http://www.usaco.org/index.php?page=contests" starred>16..24 students is no longer accurate</resource>
<resource source="Quora" title="How do I get into USACO Camp?" url="https://www.quora.com/How-do-I-get-into-the-USACO-training-camp" starred>See Brian's response.</resource>
<resource source="Quora" title="Is USACO Training Progress used in the selection of USACO Finalists?" url="https://www.quora.com/Is-progress-in-the-USACO-Training-Gateway-used-in-the-selection-of-USACO-finalists">nice we have conflicting answers</resource>
<resource source="Jelani Nelson" title="2011-20 USACO Camp Unique Participants by State" url="https://tinyurl.com/usacomap">what an amazing distribution</resource>
</resources>
<optional-content title="excerpt from 'How do I get into USACO Camp?'">
> A few answers mention how to train, so I won't focus on that (I didn't train).
...
> But even I made it to camp. So you'll have no problem.
</optional-content>
Campers generally average at least one problem and some partial credit per contest (where "some" varies a lot).
<info-block title="Pro Tip">
Submitting all the sample cases ~~might increase your total score by half a problem across the whole season!!~~
</info-block>
### First-time campers by grade level
<center>
| | <9 | 9 | 10 | 11 | 12 |
|----|----|---|----|----|----|
| 16 | 0 | 4 | 10 | 4 | 1 |
| 17 | 1 | 1 | 11 | 6 | 2 |
| 18 | 1 | 1 | 5 | 7 | 0 |
| 19 | 0 | 3 | 9 | 4 | 2 |
| 20 | 0 | 1 | 4 | 8 | 2 |
</center>

View file

@ -0,0 +1,53 @@
from contextlib import closing
from bs4 import BeautifulSoup
import urllib.request
import time
import sys
import os
import pprint
def parse(url):
page = urllib.request.urlopen(url)
return BeautifulSoup(page,'html.parser')
prefix="http://www.usaco.org/index.php?page=finalists"
past = set()
def nor(x):
return " ".join(x.split())
for i in range(12,21):
html = parse(prefix+str(i))
for a in html.find_all('table'):
par = []
for b in a.find_all('tr'):
arr = []
for c in b.find_all('td'):
arr.append(nor(c.text))
if len(arr) > 1:
par.append((arr[0],arr[1]))
nex = [0 for i in range(5)]
pre = 0
tot = 0
new = []
for a in par:
# print(a)
rem = int(a[0])-i-2000
# print(rem)
tot += 1
if a in past:
pre += 1
else:
new.append(a)
nex[4-min(rem,4)] += 1
past.add(a)
if i >= 16:
# print(tot)
# print(pre,nex)
print(nex)
# for t in nex:
# print(t,end=", ")
# print()
# for f in new:
# print(f)

View file

@ -51,6 +51,7 @@ const MODULE_ORDERING: {[key in SectionID]: Category[]} = {
name: "Move to usaco.org?",
items: [
"proposing",
"usaco-camp",
]
},
],