Created
December 6, 2017 05:23
-
-
Save abcdabcd987/e9624069208d59f95dbc13890ae9aa43 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"%matplotlib inline\n", | |
"import psycopg2\n", | |
"import psycopg2.extras\n", | |
"import re\n", | |
"import datetime\n", | |
"import heapq\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"from matplotlib.dates import MONDAY, MonthLocator, WeekdayLocator, DateFormatter\n", | |
"from tqdm import *" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"conn = psycopg2.connect('dbname=online_judge user=abcdabcd987', cursor_factory=psycopg2.extras.DictCursor)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Weekly Submission" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/vnd.jupyter.widget-view+json": { | |
"model_id": "48053a0633b84f55a780e5406235a702", | |
"version_major": 2, | |
"version_minor": 0 | |
}, | |
"text/html": [ | |
"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n", | |
"<p>\n", | |
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n", | |
" that the widgets JavaScript is still loading. If this message persists, it\n", | |
" likely means that the widgets JavaScript library is either not installed or\n", | |
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n", | |
" Widgets Documentation</a> for setup instructions.\n", | |
"</p>\n", | |
"<p>\n", | |
" If you're reading this message in another frontend (for example, a static\n", | |
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n", | |
" it may mean that your frontend doesn't currently support widgets.\n", | |
"</p>\n" | |
], | |
"text/plain": [ | |
"HBox(children=(IntProgress(value=1, bar_style='info', max=1), HTML(value='')))" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"with conn:\n", | |
" with conn.cursor('cur') as cur:\n", | |
" xs, ys = [], []\n", | |
" cur.execute('SELECT * FROM records ORDER BY submit_datetime ASC')\n", | |
" x, y = datetime.date.min, 0\n", | |
" x_week = x.isocalendar()[1]\n", | |
" for row in tqdm_notebook(cur):\n", | |
" date = row['submit_datetime'].date()\n", | |
" week = date.isocalendar()[1]\n", | |
" if x_week == week:\n", | |
" y += 1\n", | |
" else:\n", | |
" xs.append(x)\n", | |
" ys.append(y)\n", | |
" x, y, x_week = date, 1, week\n", | |
" xs.append(x)\n", | |
" ys.append(y)\n", | |
" xs, ys = xs[1:], ys[1:]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n/A+XfWL1KTdPoAAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x1122f3eb8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"minor = MonthLocator(range(1,13), bymonthday=1, interval=1)\n", | |
"months = MonthLocator(range(1,13), bymonthday=1, interval=6)\n", | |
"monthsFmt = DateFormatter(\"%b '%y\")\n", | |
"fig, ax = plt.subplots()\n", | |
"ax.set_title('Weekly Submission')\n", | |
"ax.plot_date(xs, ys, '-', linewidth=0.5)\n", | |
"ax.xaxis.set_major_locator(months)\n", | |
"ax.xaxis.set_major_formatter(monthsFmt)\n", | |
"ax.xaxis.set_minor_locator(minor)\n", | |
"ax.autoscale_view()\n", | |
"ax.grid(True)\n", | |
"fig.autofmt_xdate()\n", | |
"plt.savefig('weekly-submit.pdf')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Maximum Exam Wait Time" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def run_time(judge_message):\n", | |
" return sum(map(int, re.findall('(\\d+)ms', judge_message))) / 1000" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 66, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def exam_wait_times(num_judge):\n", | |
" wait_times = []\n", | |
" with conn:\n", | |
" with conn.cursor('report') as report_cur:\n", | |
" report_cur.execute('SELECT * FROM reports WHERE visible=1')\n", | |
" for report in tqdm_notebook(report_cur):\n", | |
" title = report['title']\n", | |
" st, ed = report['start_datetime'], report['end_datetime']\n", | |
" wait_time = 0\n", | |
" queue = [0] * num_judge\n", | |
" with conn.cursor('submit') as submit_cur:\n", | |
" submit_cur.execute('SELECT * FROM records WHERE submit_datetime BETWEEN %s AND %s ORDER BY submit_datetime ASC', (st, ed))\n", | |
" for submit in submit_cur:\n", | |
" timestamp = submit['submit_datetime'].timestamp()\n", | |
" runtime = run_time(submit['judge_message'])\n", | |
" first_judge = heapq.heappop(queue)\n", | |
" wait_time = max(wait_time, first_judge - timestamp)\n", | |
" heapq.heappush(queue, max(first_judge, timestamp) + runtime + 4)\n", | |
" wait_times.append((wait_time, title))\n", | |
" wait_times.sort(reverse=True)\n", | |
" return wait_times" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 71, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/vnd.jupyter.widget-view+json": { | |
"model_id": "7a24d343aaa744cf8641b2dfba0cfb37", | |
"version_major": 2, | |
"version_minor": 0 | |
}, | |
"text/html": [ | |
"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n", | |
"<p>\n", | |
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n", | |
" that the widgets JavaScript is still loading. If this message persists, it\n", | |
" likely means that the widgets JavaScript library is either not installed or\n", | |
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n", | |
" Widgets Documentation</a> for setup instructions.\n", | |
"</p>\n", | |
"<p>\n", | |
" If you're reading this message in another frontend (for example, a static\n", | |
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n", | |
" it may mean that your frontend doesn't currently support widgets.\n", | |
"</p>\n" | |
], | |
"text/plain": [ | |
"HBox(children=(IntProgress(value=1, bar_style='info', max=1), HTML(value='')))" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"application/vnd.jupyter.widget-view+json": { | |
"model_id": "f765abca40824c7b94d8f6311c958108", | |
"version_major": 2, | |
"version_minor": 0 | |
}, | |
"text/html": [ | |
"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n", | |
"<p>\n", | |
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n", | |
" that the widgets JavaScript is still loading. If this message persists, it\n", | |
" likely means that the widgets JavaScript library is either not installed or\n", | |
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n", | |
" Widgets Documentation</a> for setup instructions.\n", | |
"</p>\n", | |
"<p>\n", | |
" If you're reading this message in another frontend (for example, a static\n", | |
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n", | |
" it may mean that your frontend doesn't currently support widgets.\n", | |
"</p>\n" | |
], | |
"text/plain": [ | |
"HBox(children=(IntProgress(value=1, bar_style='info', max=1), HTML(value='')))" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"application/vnd.jupyter.widget-view+json": { | |
"model_id": "37114336816e4265aec40d84fcc504e6", | |
"version_major": 2, | |
"version_minor": 0 | |
}, | |
"text/html": [ | |
"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n", | |
"<p>\n", | |
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n", | |
" that the widgets JavaScript is still loading. If this message persists, it\n", | |
" likely means that the widgets JavaScript library is either not installed or\n", | |
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n", | |
" Widgets Documentation</a> for setup instructions.\n", | |
"</p>\n", | |
"<p>\n", | |
" If you're reading this message in another frontend (for example, a static\n", | |
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n", | |
" it may mean that your frontend doesn't currently support widgets.\n", | |
"</p>\n" | |
], | |
"text/plain": [ | |
"HBox(children=(IntProgress(value=1, bar_style='info', max=1), HTML(value='')))" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"application/vnd.jupyter.widget-view+json": { | |
"model_id": "c7f7e1d5940548b8a67aa48f9b3a9659", | |
"version_major": 2, | |
"version_minor": 0 | |
}, | |
"text/html": [ | |
"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n", | |
"<p>\n", | |
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n", | |
" that the widgets JavaScript is still loading. If this message persists, it\n", | |
" likely means that the widgets JavaScript library is either not installed or\n", | |
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n", | |
" Widgets Documentation</a> for setup instructions.\n", | |
"</p>\n", | |
"<p>\n", | |
" If you're reading this message in another frontend (for example, a static\n", | |
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n", | |
" it may mean that your frontend doesn't currently support widgets.\n", | |
"</p>\n" | |
], | |
"text/plain": [ | |
"HBox(children=(IntProgress(value=1, bar_style='info', max=1), HTML(value='')))" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"wt1 = exam_wait_times(1)\n", | |
"wt2 = exam_wait_times(2)\n", | |
"wt4 = exam_wait_times(4)\n", | |
"wt8 = exam_wait_times(8)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 78, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[(527.9299986362457, 'IEEE DataStructure Spring 2013 Exam 4'),\n", | |
" (527.9299986362457, 'Data Structures Spring 2013 Exam 5'),\n", | |
" (368.9960012435913, 'ACM Programming 2017 (B) Homework 1'),\n", | |
" (368.9960012435913, '2017秋数据结构C第一次作业(钱诗友班)'),\n", | |
" (368.9960012435913, '2017秋季数据结构第一次作业(俞勇班)'),\n", | |
" (266.1959993839264, 'IEEE DataStructure Spring 2013 Exam2'),\n", | |
" (266.1959993839264, 'Data Structures Spring 2013 Homework 2'),\n", | |
" (225.62299990653992, 'IEEE Data-Structure 2016 Spring Homework 5'),\n", | |
" (225.62299990653992, 'Data Structure Spring 2016 Homework 4'),\n", | |
" (148.63799953460693, 'IEEE DataStructure Spring 2013 Exam1'),\n", | |
" (148.63799953460693, 'Data Structures Spring 2013 Homework 1'),\n", | |
" (143.58099913597107, 'ACM Programming 2017 (B) Homework 4'),\n", | |
" (143.58099913597107, 'ACM Programming 2017 (A) Homework 2'),\n", | |
" (143.58099913597107, '2017秋数据结构第四次作业(俞勇班)'),\n", | |
" (143.58099913597107, '2017秋数据结构C第五次作业(钱诗友班)'),\n", | |
" (143.58099913597107, '2017秋-工科大平台-程序设计思想与方法作业-实验5'),\n", | |
" (135.33099913597107, 'ACM Programming 2017 (B) Homework 2'),\n", | |
" (135.33099913597107, 'ACM Programming 2017 (A) Homework 1'),\n", | |
" (135.33099913597107, '2017秋数据结构C第二次作业(钱诗友班)'),\n", | |
" (135.33099913597107, '2017秋数据结构C第三次作业(钱诗友班)')]" | |
] | |
}, | |
"execution_count": 78, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"wt1[:20]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 73, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[(169.2879993915558, 'IEEE DataStructure Spring 2013 Exam 4'),\n", | |
" (169.2879993915558, 'Data Structures Spring 2013 Exam 5'),\n", | |
" (138.5650007724762, 'ACM Programming 2017 (B) Homework 1'),\n", | |
" (138.5650007724762, '2017秋数据结构C第一次作业(钱诗友班)'),\n", | |
" (138.5650007724762, '2017秋季数据结构第一次作业(俞勇班)'),\n", | |
" (103.62799978256226, 'IEEE Data-Structure 2016 Spring Homework 5'),\n", | |
" (103.62799978256226, 'Data Structure Spring 2016 Homework 4'),\n", | |
" (59.1759991645813, 'ACM Programming 2017 (B) Homework 2'),\n", | |
" (59.1759991645813, 'ACM Programming 2017 (A) Homework 1'),\n", | |
" (59.1759991645813, '2017秋数据结构C第二次作业(钱诗友班)')]" | |
] | |
}, | |
"execution_count": 73, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"wt2[:10]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 74, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[(72.27799963951111, 'IEEE DataStructure Spring 2013 Exam 4'),\n", | |
" (72.27799963951111, 'Data Structures Spring 2013 Exam 5'),\n", | |
" (43.12100005149841, 'IEEE Data-Structure 2016 Spring Homework 5'),\n", | |
" (43.12100005149841, 'Data Structure Spring 2016 Homework 4'),\n", | |
" (23.743000030517578, 'ACM Programming 2017 (B) Homework 1'),\n", | |
" (23.743000030517578, '2017秋数据结构C第一次作业(钱诗友班)'),\n", | |
" (23.743000030517578, '2017秋季数据结构第一次作业(俞勇班)'),\n", | |
" (22.05799961090088, 'ACM Programming 2017 (B) Homework 2'),\n", | |
" (22.05799961090088, 'ACM Programming 2017 (A) Homework 1'),\n", | |
" (22.05799961090088, '2017秋数据结构C第二次作业(钱诗友班)')]" | |
] | |
}, | |
"execution_count": 74, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"wt4[:10]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 75, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[(28.16599988937378, 'IEEE DataStructure Spring 2013 Exam 4'),\n", | |
" (28.16599988937378, 'Data Structures Spring 2013 Exam 5'),\n", | |
" (14.998999834060669, 'IEEE Data-Structure 2016 Spring Homework 5'),\n", | |
" (14.998999834060669, 'Data Structure Spring 2016 Homework 4'),\n", | |
" (5.031999826431274, 'ACM Programming 2017 (B) Homework 4'),\n", | |
" (5.031999826431274, 'ACM Programming 2017 (A) Homework 2'),\n", | |
" (5.031999826431274, '2017秋数据结构第四次作业(俞勇班)'),\n", | |
" (5.031999826431274, '2017秋数据结构C第五次作业(钱诗友班)'),\n", | |
" (5.031999826431274, '2017秋-工科大平台-程序设计思想与方法作业-实验5'),\n", | |
" (5.010999917984009, 'ACM Programming 2017 (B) Homework 1')]" | |
] | |
}, | |
"execution_count": 75, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"wt8[:10]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 76, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/vnd.jupyter.widget-view+json": { | |
"model_id": "4802709c6c2d465cbab87911d0b34b9c", | |
"version_major": 2, | |
"version_minor": 0 | |
}, | |
"text/html": [ | |
"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n", | |
"<p>\n", | |
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n", | |
" that the widgets JavaScript is still loading. If this message persists, it\n", | |
" likely means that the widgets JavaScript library is either not installed or\n", | |
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n", | |
" Widgets Documentation</a> for setup instructions.\n", | |
"</p>\n", | |
"<p>\n", | |
" If you're reading this message in another frontend (for example, a static\n", | |
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n", | |
" it may mean that your frontend doesn't currently support widgets.\n", | |
"</p>\n" | |
], | |
"text/plain": [ | |
"HBox(children=(IntProgress(value=1, bar_style='info', max=1), HTML(value='')))" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"wt16 = exam_wait_times(16)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 77, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[(6.003999948501587, 'IEEE DataStructure Spring 2013 Exam 4'),\n", | |
" (6.003999948501587, 'Data Structures Spring 2013 Exam 5'),\n", | |
" (1.5769999027252197, 'IEEE Data-Structure 2016 Spring Homework 5'),\n", | |
" (1.5769999027252197, 'Data Structure Spring 2016 Homework 4'),\n", | |
" (1.0109999179840088, 'ACM Programming 2017 (B) Homework 1'),\n", | |
" (1.0109999179840088, '2017秋数据结构C第一次作业(钱诗友班)'),\n", | |
" (1.0109999179840088, '2017秋季数据结构第一次作业(俞勇班)'),\n", | |
" (1.0109999179840088, '2017秋-工科大平台-程序设计思想与方法作业-实验2'),\n", | |
" (1.0, 'IEEE DataStructure Spring 2013 Exam1'),\n", | |
" (1.0, 'Data Structures Spring 2013 Homework 1')]" | |
] | |
}, | |
"execution_count": 77, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"wt16[:10]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 79, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/vnd.jupyter.widget-view+json": { | |
"model_id": "4b813d21377a41d39e19766994afe4ba", | |
"version_major": 2, | |
"version_minor": 0 | |
}, | |
"text/html": [ | |
"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n", | |
"<p>\n", | |
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n", | |
" that the widgets JavaScript is still loading. If this message persists, it\n", | |
" likely means that the widgets JavaScript library is either not installed or\n", | |
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n", | |
" Widgets Documentation</a> for setup instructions.\n", | |
"</p>\n", | |
"<p>\n", | |
" If you're reading this message in another frontend (for example, a static\n", | |
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n", | |
" it may mean that your frontend doesn't currently support widgets.\n", | |
"</p>\n" | |
], | |
"text/plain": [ | |
"HBox(children=(IntProgress(value=1, bar_style='info', max=1), HTML(value='')))" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"[(527.9299986362457, 'IEEE DataStructure Spring 2013 Exam 4'),\n", | |
" (527.9299986362457, 'Data Structures Spring 2013 Exam 5'),\n", | |
" (368.9960012435913, 'ACM Programming 2017 (B) Homework 1'),\n", | |
" (368.9960012435913, '2017秋数据结构C第一次作业(钱诗友班)'),\n", | |
" (368.9960012435913, '2017秋季数据结构第一次作业(俞勇班)'),\n", | |
" (266.1959993839264, 'IEEE DataStructure Spring 2013 Exam2'),\n", | |
" (266.1959993839264, 'Data Structures Spring 2013 Homework 2'),\n", | |
" (225.62299990653992, 'IEEE Data-Structure 2016 Spring Homework 5'),\n", | |
" (225.62299990653992, 'Data Structure Spring 2016 Homework 4'),\n", | |
" (148.63799953460693, 'IEEE DataStructure Spring 2013 Exam1'),\n", | |
" (148.63799953460693, 'Data Structures Spring 2013 Homework 1'),\n", | |
" (143.58099913597107, 'ACM Programming 2017 (B) Homework 4'),\n", | |
" (143.58099913597107, 'ACM Programming 2017 (A) Homework 2'),\n", | |
" (143.58099913597107, '2017秋数据结构第四次作业(俞勇班)'),\n", | |
" (143.58099913597107, '2017秋数据结构C第五次作业(钱诗友班)'),\n", | |
" (143.58099913597107, '2017秋-工科大平台-程序设计思想与方法作业-实验5'),\n", | |
" (135.33099913597107, 'ACM Programming 2017 (B) Homework 2'),\n", | |
" (135.33099913597107, 'ACM Programming 2017 (A) Homework 1'),\n", | |
" (135.33099913597107, '2017秋数据结构C第二次作业(钱诗友班)'),\n", | |
" (135.33099913597107, '2017秋数据结构C第三次作业(钱诗友班)'),\n", | |
" (135.33099913597107, '2017秋季数据结构第二次作业(俞勇班)'),\n", | |
" (135.33099913597107, '2017秋-工科大平台-程序设计思想与方法作业-实验3'),\n", | |
" (135.33099913597107, '2017秋-工科大平台-程序设计思想与方法作业-实验2'),\n", | |
" (125.11299967765808, 'IEEE DataStructure 2015 Spring Homework 1s'),\n", | |
" (105.09299969673157, 'Data Structures Spring 2015 Exam 1'),\n", | |
" (104.44000029563904, 'IEEE Programming 2014 Homework 9'),\n", | |
" (104.44000029563904, 'IEEE Programming 2014 Homework 8'),\n", | |
" (104.44000029563904, 'Data Structure Spring 2014 Homework 5'),\n", | |
" (102.19000005722046, 'Data Structures Spring 2014 Exam 3'),\n", | |
" (91.0, 'IEEE Programming 2015 Fall Homework 10'),\n", | |
" (90.06199955940247, 'ACM PPCA 2015 Exam 7'),\n", | |
" (86.07999992370605, 'IEEE Summer 2013 Homework 12'),\n", | |
" (86.07999992370605, 'IEEE Summer 2013 Homework 11'),\n", | |
" (86.07999992370605, 'IEEE Summer 2013 Homework 10'),\n", | |
" (77.29800033569336, 'IEEE Programming 2015 Fall Homework 11'),\n", | |
" (77.29800033569336, 'IEEE DataStructure 2015 Spring Homework 6'),\n", | |
" (77.29800033569336, 'Data Structure Spring 2015 Homework 4'),\n", | |
" (76.32999992370605, 'IEEE Summer Exam 4'),\n", | |
" (72.17000007629395, 'IEEE PPCA 2015 Homework 6'),\n", | |
" (72.17000007629395, 'IEEE PPCA 2015 Homework 5'),\n", | |
" (72.17000007629395, 'IEEE PPCA 2015 Exam 2'),\n", | |
" (65.03999948501587, 'IEEE Data Structures Spring 2013 Homework 1 '),\n", | |
" (65.03999948501587, 'Data Structures Spring 2013 Homework 3'),\n", | |
" (61.35999941825867, 'IEEE PPCA 2014 Homework 2'),\n", | |
" (61.30999994277954, 'IEEE PPCA 2014 Homework 3'),\n", | |
" (60.971999406814575, 'IEEE DataStructure Spring 2013 Exam3'),\n", | |
" (57.75, 'Programming Fall Homework 3'),\n", | |
" (57.64500021934509, 'IEEE Data Structure Exam4'),\n", | |
" (56.75, 'IEEE Summer Exam 2'),\n", | |
" (56.75, 'IEEE Summer 2013 Homework 6'),\n", | |
" (56.75, 'IEEE Summer 2013 Homework 5'),\n", | |
" (56.75, 'IEEE Summer 2013 Homework 4'),\n", | |
" (56.007999897003174, 'Programming Fall 2012 Exam 2'),\n", | |
" (54.10499978065491, 'IEEE Programming 2015 Fall Homework 8'),\n", | |
" (54.10499978065491, 'IEEE Programming 2015 Fall Exam 2'),\n", | |
" (54.10499978065491, 'IEEE DataStructure 2015 Spring Homework 5'),\n", | |
" (52.68999981880188, 'IEEE Programming 2014 Exam 3'),\n", | |
" (52.68999981880188, 'Data Structure Spring 2014 Homework 2'),\n", | |
" (50.14799976348877, 'IEEE Summer 2013 Homework 3'),\n", | |
" (50.14799976348877, 'IEEE Summer 2013 Homework 2'),\n", | |
" (50.14799976348877, 'IEEE Summer 2013 Homework 1'),\n", | |
" (47.35000038146973, 'IEEE_DataStructure_2017_Homework_Week10'),\n", | |
" (47.35000038146973, 'IEEE_DataStructure_2017_Exercise_Week10'),\n", | |
" (47.35000038146973, 'Data Structure Spring 2017 Homework 2'),\n", | |
" (46.188000202178955, 'IEEE_DataStructure_2017_Quiz1'),\n", | |
" (46.188000202178955, 'IEEE_DataStructure_2017_Homework_Chapter4'),\n", | |
" (46.090999364852905, 'IEEE PPCA 2015 Homework 10'),\n", | |
" (46.090999364852905, 'IEEE PPCA 2015 Exam 4'),\n", | |
" (45.730000019073486, 'Programming Fall 2012 Exam 3'),\n", | |
" (45.730000019073486, '2012级ACM班程序设计第二次作业'),\n", | |
" (43.800999879837036, 'IEEE PPCA 2015 Homework 2'),\n", | |
" (43.800999879837036, 'IEEE PPCA 2015 Exam 1'),\n", | |
" (43.800999879837036, 'ACM PPCA 2015 Exam 1'),\n", | |
" (43.75699996948242, 'Programming Fall 2015 Homework 1'),\n", | |
" (40.21999979019165, 'IEEE Programming 2014 Homework 2'),\n", | |
" (40.21999979019165, 'IEEE Programming 2014 Exam 1'),\n", | |
" (40.19100022315979, 'ACM Data Structure Spring 2017 Exam 3(To NULL)'),\n", | |
" (40.19100022315979, 'ACM Data Structure Spring 2017 Exam 3'),\n", | |
" (40.0, 'SEIEE-Yu Yong Data Structure 2015 Fall Homework 2-ex'),\n", | |
" (40.0, 'Programming Fall Homework 3 for OIER'),\n", | |
" (40.0, 'Programming Fall 2015 Homework 3 for Freshman'),\n", | |
" (40.0, 'Programming Fall 2015 Extend Homework 3 for Freshman'),\n", | |
" (40.0, 'Programming Fall 2015 Extend Homework 2 for Freshman'),\n", | |
" (39.36999988555908, 'ACM Programming 2017 Exam 2 (plus)'),\n", | |
" (39.36999988555908, 'ACM Programming 2017 (B) Homework 5'),\n", | |
" (39.36999988555908, '2017秋数据结构第七次作业(俞勇班)'),\n", | |
" (39.36999988555908, '2017秋数据结构C第八次作业(钱诗友班)'),\n", | |
" (39.36999988555908, '2017秋数据结构C第七次作业(钱诗友班)'),\n", | |
" (39.36999988555908, '2017秋-工科大平台-程序设计思想与方法作业-实验8'),\n", | |
" (39.36999988555908, '\\t2017秋数据结构第六次作业(俞勇班)'),\n", | |
" (38.72999978065491, 'IEEE PPCA 2014 Exam 2'),\n", | |
" (38.59500002861023, 'IEEE Programming 2015 Fall Homework 9'),\n", | |
" (38.55799984931946, 'Programming Fall 2012 Exam 1'),\n", | |
" (37.10199999809265, 'Programming Fall 2014 Homework 1'),\n", | |
" (37.10199999809265, '2014数据结构第四次作业_俞勇班'),\n", | |
" (36.90500020980835, 'Data Structures Spring 2015 Exam 2'),\n", | |
" (36.90500020980835, 'Data Structure Spring 2016 Homework 2'),\n", | |
" (35.49600005149841, 'SEIEE-Yu Yong Data Structure 2015 Fall Homework 6-ex'),\n", | |
" (35.49600005149841, 'SEIEE-Yu Yong Data Structure 2015 Fall Homework 6'),\n", | |
" (35.49600005149841, 'SEIEE-Yu Yong Data Structure 2015 Fall Homework 5-ex'),\n", | |
" (35.49600005149841, 'Programming Fall Extra Homework for Freshman'),\n", | |
" (35.49600005149841, 'Programming Fall Extra Homework'),\n", | |
" (34.79800033569336, 'IEEE Data Structure 2016 Spring Exam 2'),\n", | |
" (34.79800033569336, 'Data Structure Spring 2016 Homework 3'),\n", | |
" (34.49199962615967, 'IEEE PPCA 2015 Homework 9'),\n", | |
" (34.49199962615967, 'IEEE PPCA 2015 Homework 8'),\n", | |
" (33.49600005149841, 'IEEE DataStructure Exam 3'),\n", | |
" (33.44399976730347, 'IEEE_DataStructure_2017_Homework_Week8'),\n", | |
" (33.44399976730347, 'IEEE_DataStructure_2017_Exercise_Week8'),\n", | |
" (32.961000204086304, 'IEEE_DataStructure_2017_Homework_Week9'),\n", | |
" (32.76200032234192, 'IEEE Programming 2015 Fall Homework 4'),\n", | |
" (30.641000032424927, 'ACM Programming 2017 Exam 2'),\n", | |
" (29.556999921798706, 'IEEE DataStructure 2015 Spring Homework 2'),\n", | |
" (29.056999921798706, 'ACM Programming 2017 (B) Homework 3'),\n", | |
" (29.056999921798706, '2017秋数据结构C第四次作业(钱诗友班)'),\n", | |
" (29.056999921798706, '2017秋季数据结构第三次作业(俞勇班) (加时)'),\n", | |
" (29.056999921798706, '2017秋-工科大平台-程序设计思想与方法作业-实验4'),\n", | |
" (27.539999961853027, 'IEEE PPCA 2014 Homework 1'),\n", | |
" (27.539999961853027, 'IEEE PPCA 2014 Exam 1'),\n", | |
" (27.46000027656555, 'Data Structures Spring 2015 Exam 2'),\n", | |
" (27.174000024795532, '上海交通大学“超级码力”程序设计大奖赛 3月月赛'),\n", | |
" (26.28000020980835, 'IEEE PPCA 2014 Exam 3'),\n", | |
" (25.859999895095825, 'IEEE Summer Exam 3'),\n", | |
" (25.859999895095825, 'IEEE Summer 2013 Homework 8'),\n", | |
" (25.859999895095825, 'IEEE Summer 2013 Homework 7'),\n", | |
" (25.859999895095825, ' IEEE Summer 2013 Homework 9'),\n", | |
" (24.677000284194946, '2017秋数据结构第十次作业(俞勇班)'),\n", | |
" (24.677000284194946, '2017秋数据结构C第十一次作业(钱诗友班) '),\n", | |
" (24.677000284194946, '2017秋-工科大平台-程序设计思想与方法作业-实验12'),\n", | |
" (24.621000051498413, '2014数据结构第三次作业_俞勇班'),\n", | |
" (24.311999082565308, 'IEEE_DataStructure_2017_Homework_Week13'),\n", | |
" (24.311999082565308, 'IEEE_DataStructure_2017_Exercise_Week13'),\n", | |
" (24.08400011062622, 'Data Structure Spring 2017 Homework 3'),\n", | |
" (24.020000219345093, '2017秋数据结构第五次作业(俞勇班)'),\n", | |
" (24.020000219345093, '2017秋数据结构C第六次作业(钱诗友班)'),\n", | |
" (24.020000219345093, '2017秋-工科大平台-程序设计思想与方法作业-实验6'),\n", | |
" (23.059000253677368, 'IEEE_DataStructure_2017_Homework_Chapter7'),\n", | |
" (23.059000253677368, 'IEEE_DataStructure_2017_Exercise_Week7'),\n", | |
" (23.0, 'IEEE Programming 2015 Fall Homework 7'),\n", | |
" (23.0, 'IEEE DataStructure 2015 Spring Homework 4'),\n", | |
" (23.0, 'IEEE DataStructure 2015 Spring Homework 3'),\n", | |
" (22.880000352859497, 'Programming Fall 2015 Homework 2'),\n", | |
" (22.252000093460083, 'ACM Programming 2017 (B) Homework 6'),\n", | |
" (22.252000093460083, '2017秋-工科大平台-程序设计思想与方法作业-实验9'),\n", | |
" (22.252000093460083, '2017数据结构第八次作业(俞勇班)'),\n", | |
" (22.173999786376953, 'IEEE Programming 2015 Fall Exam 1'),\n", | |
" (22.173999786376953, 'Data Structure Spring 2015 Homework 2'),\n", | |
" (21.927000284194946, 'IEEE Data Structure Exam 2'),\n", | |
" (21.927000284194946, 'Data Structure Spring 2015 Homework 3'),\n", | |
" (21.37999987602234, 'Data Structure Spring 2017 Homework 1 续'),\n", | |
" (21.179999828338623, 'ACM-PPCA2013 EXAM 1'),\n", | |
" (21.09600019454956, 'ACM Programming 2017 (A) Homework 3'),\n", | |
" (21.09600019454956, '2017秋数据结构第八次作业(俞勇班)(补充)'),\n", | |
" (21.09600019454956, '2017秋数据结构C第九次作业(钱诗友班)'),\n", | |
" (21.09600019454956, '2017秋-工科大平台-程序设计思想与方法作业-实验10'),\n", | |
" (21.070000410079956, 'PPCA EXAM 0'),\n", | |
" (21.0, 'IEEE_DataStructure_2017_Exercise_Week4'),\n", | |
" (20.98800015449524, 'Programming Fall 2016 Exam 0'),\n", | |
" (20.98800015449524, '2016秋数据结构第三次作业(俞勇班)'),\n", | |
" (20.799000024795532, 'IEEE Programming 2015 Fall Exam 3'),\n", | |
" (20.019999980926514, 'Programming Fall Homework 1'),\n", | |
" (19.911999940872192, 'Data Structures Spring 2013 Exam 2'),\n", | |
" (19.674000024795532, '\\tACM Programming 2017 (B) Homework 5 续'),\n", | |
" (19.65400004386902, 'Data Structures Spring 2015 Exam 2(+900s)'),\n", | |
" (19.033999919891357, '2017秋数据结构第九次作业(俞勇班)'),\n", | |
" (19.033999919891357, '2017秋数据结构C第十次作业(钱诗友班)'),\n", | |
" (19.033999919891357, '2017秋-工科大平台-程序设计思想与方法作业-实验11'),\n", | |
" (18.288999795913696, 'IEEE PPCA 2015 Homework 4 '),\n", | |
" (18.288999795913696, 'IEEE PPCA 2015 Homework 3'),\n", | |
" (18.133999824523926, 'ACM Data Structure Spring 2017 Exam 4'),\n", | |
" (17.990000009536743, 'Data Structures Spring 2014 Exam 4'),\n", | |
" (17.921000003814697, 'SEIEE-Yu Yong Data Structure 2015 Fall Homework 4'),\n", | |
" (17.921000003814697, 'SEIEE-Yu Yong Data Structure 2015 Fall Homework 3-ex'),\n", | |
" (17.848999500274658, 'IEEE Data Structure 2016 Spring Exam 3'),\n", | |
" (17.776000022888184, 'ACM Data Structure Spring 2017 Exam 2'),\n", | |
" (17.609999895095825, 'ACM PPCA 2014 Exam 3'),\n", | |
" (17.539000034332275, 'ACM PPCA 2015 Exam 0'),\n", | |
" (17.496999979019165, 'Programming Fall 2016 Exam 3[续]'),\n", | |
" (17.496999979019165, 'Programming Fall 2016 Exam 3'),\n", | |
" (17.496999979019165, 'ACM Programming 2016 Homework 3'),\n", | |
" (17.496999979019165, '2016秋数据结构第八次作业(俞勇班)'),\n", | |
" (17.229999780654907, 'IEEE PPCA 2014 Exam 4'),\n", | |
" (17.0, 'IEEE Programming 2014 Exam 2'),\n", | |
" (16.919000148773193, 'IEEE PPCA 2015 Exam 3'),\n", | |
" (16.89300012588501, 'IEEE_DataStructure_2017_Homework_Week11'),\n", | |
" (16.89300012588501, 'IEEE_DataStructure_2017_Exercise_Week11'),\n", | |
" (16.18999981880188, 'Programming Fall Homework 2'),\n", | |
" (16.18999981880188, 'Programming Fall 2013 Exam 2'),\n", | |
" (16.0, 'IEEE Programming 2014 Homework 3'),\n", | |
" (16.0, 'Data Structures Spring 2014 Exam 1'),\n", | |
" (15.934999942779541, 'ACM Programming 2017 Exam 1'),\n", | |
" (15.710000038146973, 'Programming Fall 2014 Homework 2'),\n", | |
" (15.710000038146973, '2014数据结构第五、第六次作业_俞勇班'),\n", | |
" (15.62999963760376, 'IEEE Data Structure 2016 Spring Exam1'),\n", | |
" (15.619999885559082, 'ACM-PPCA2013 EXAM 4'),\n", | |
" (15.609999656677246, 'IEEE Programming 2014 Exam 4'),\n", | |
" (15.503000020980835, '2017秋-工科大平台-程序设计思想与方法作业-实验6-增补'),\n", | |
" (15.299000024795532, 'IEEE_DataStructure_2017_Homework_Chapter6'),\n", | |
" (15.299000024795532, 'IEEE_DataStructure_2017_Exercise_Week6'),\n", | |
" (15.299000024795532, 'Data Structure Spring 2017 Homework 1'),\n", | |
" (15.297999858856201, 'IEEE PPCA 2015 Homework 7'),\n", | |
" (15.092000007629395, 'ACM Data Structure Spring 2017 Exam 1'),\n", | |
" (15.026999950408936, '面向对象程序设计第二次上机考试(加时)'),\n", | |
" (14.96399998664856, 'IEEE_DataStructure_2017_Homework_Week12'),\n", | |
" (14.96399998664856, 'IEEE_DataStructure_2017_Exercise_Week12'),\n", | |
" (14.692999839782715, 'ACM Programming Homework Supplement'),\n", | |
" (14.692999839782715, 'ACM Programming Homework 4'),\n", | |
" (14.692999839782715, '2016秋数据结构第九次作业(俞勇班)'),\n", | |
" (14.657000064849854, 'ACM Programming 2017 Exam 3'),\n", | |
" (14.432000160217285, 'Data Structures Spring 2013 Exam 1'),\n", | |
" (14.319999933242798, 'Programming Fall Homework 4'),\n", | |
" (14.129999876022339, 'IEEE Summer Exam 1'),\n", | |
" (14.122999906539917, '面向对象程序设计第十四周上机考试'),\n", | |
" (14.072999715805054, 'IEEE_DataStructure_2017_Quiz3'),\n", | |
" (14.069000005722046, 'ACM Programming 2017 Exam 0'),\n", | |
" (14.069000005722046, '2017秋季数据结构第三次作业(俞勇班)'),\n", | |
" (14.0239999294281, 'Programming Fall 2016 Exam 4'),\n", | |
" (14.0239999294281, '2016秋数据结构第十次作业(俞勇班)'),\n", | |
" (13.967000007629395, 'Data Structures Spring 2015 Exam 5'),\n", | |
" (13.957000017166138, 'ACM PPCA 2015 Exam 2'),\n", | |
" (13.889000177383423, 'Programming Fall 2016 Exam 2'),\n", | |
" (13.889000177383423, '2016秋数据结构第六次作业(续)(俞勇班)'),\n", | |
" (13.343999862670898, 'Programming Fall 2015 Exam 2'),\n", | |
" (13.294999837875366, 'ACM PPCA 2015 Exam 3'),\n", | |
" (13.089000225067139, 'ACM Programming 2017 (A) Homework 2 续'),\n", | |
" (12.90500020980835, '面向对象程序设计第十四周上机考试'),\n", | |
" (12.458000183105469, 'Programming Fall 2016 Exam 1 '),\n", | |
" (12.458000183105469, 'ACM Programming 2016 Homework 2'),\n", | |
" (12.458000183105469, '2016秋数据结构第五次作业(俞勇班)'),\n", | |
" (12.243000030517578, 'IEEE Data-Structure 2016 Spring Homework 3'),\n", | |
" (12.200000047683716, '面向对象程序设计上机第七周作业'),\n", | |
" (12.02400016784668, 'SEIEE-Yu Yong Data Structure 2015 Fall Homework 5'),\n", | |
" (12.02400016784668, 'SEIEE-Yu Yong Data Structure 2015 Fall Homework 4-ex'),\n", | |
" (12.02400016784668, 'Programming Fall 2015 Extend Homework 4 for Freshman'),\n", | |
" (12.0, 'Data Structure Spring 2014 Homework 1'),\n", | |
" (12.0, '2017秋数据结构第六次作业(俞勇班)(加时)'),\n", | |
" (11.869999885559082, 'ACM PPCA 2014 Exam 1'),\n", | |
" (11.863999843597412, 'Data Structures Spring 2013 Exam 3'),\n", | |
" (11.789000034332275, 'IEEE Data-Structure 2016 Spring Homework 4'),\n", | |
" (11.721999883651733, 'Programming Fall 2014 Exam 1'),\n", | |
" (11.450000047683716, 'IEEE Programming 2014 Homework 7'),\n", | |
" (11.450000047683716, 'IEEE Programming 2014 Homework 6'),\n", | |
" (11.450000047683716, 'Data Structures Spring 2014 Exam 2'),\n", | |
" (11.450000047683716, 'Data Structure Spring 2014 Homework 3'),\n", | |
" (11.326000213623047, 'IEEE PPCA 2015 Homework 1'),\n", | |
" (11.309999942779541, 'ACM-PPCA2013 EXAM 2'),\n", | |
" (11.251000165939331, 'IEEE_DataStructure_2017_Homework_Chapter3'),\n", | |
" (11.251000165939331, 'IEEE_DataStructure_2017_Homework_Chapter2'),\n", | |
" (11.19700002670288, '2014数据结构第十一次作业_俞勇班'),\n", | |
" (11.186000108718872, 'ACM PPCA 2015 Exam 5'),\n", | |
" (11.075000047683716, 'ACM PPCA 2015 Exam 6'),\n", | |
" (11.03600001335144, '2012级ACM班程序设计第一次作业'),\n", | |
" (11.02400016784668, 'IEEE_DataStructure_2017_Quiz2'),\n", | |
" (10.938999891281128, 'IEEE Programming 2015 Fall Homework 6'),\n", | |
" (10.829999923706055, 'Data Structures Spring 2015 Exam 4'),\n", | |
" (10.791999816894531, 'IEEE Data Structure Exam 1'),\n", | |
" (10.782000064849854, 'Programming Fall 2014 Homework 4'),\n", | |
" (10.782000064849854, 'Programming Fall 2014 Exam 4'),\n", | |
" (10.73200011253357, 'ACM PPCA 2015 Exam 4'),\n", | |
" (10.67199993133545, 'IEEE Data-Structure 2016 Spring Homework 2'),\n", | |
" (10.67199993133545, 'Data Structures Spring 2015 Exam 1'),\n", | |
" (10.658999919891357, 'ACM Programming 2016 Homework 1'),\n", | |
" (10.658999919891357, '2016秋数据结构第二次作业(俞勇班)'),\n", | |
" (10.31000018119812, 'Programming Fall 2013 Exam 3'),\n", | |
" (10.17199993133545, 'Data Structures Spring 2015 Exam 0'),\n", | |
" (10.157999992370605, '面向对象程序设计上机第六周作业'),\n", | |
" (10.157999992370605, 'IEEE_DataStructure_2017_Homework_Chapter5'),\n", | |
" (10.03600001335144, '面向对象程序设计上机第十三周作业'),\n", | |
" (10.010999917984009, '面向对象16周上机考试'),\n", | |
" (10.010000228881836, 'IEEE_DataStructure_2017_Exercise_Week3'),\n", | |
" (9.718000173568726, 'IEEE Programming 2015 Fall Homework 3'),\n", | |
" (9.569999933242798, 'Data Structures Spring 2013 Exam 4'),\n", | |
" (9.430000066757202, '2012级ACM班程序设计第三次作业'),\n", | |
" (9.395999908447266, 'Data Structures Spring 2015 Exam 4(+920s)'),\n", | |
" (9.391000032424927, 'Programming Fall 2015 Exam 4'),\n", | |
" (9.068000078201294, '面向对象程序设计上机第十二周作业'),\n", | |
" (9.044000148773193, '面向对象程序设计上机第八周作业'),\n", | |
" (9.0239999294281, '面向对象程序设计上机第十周作业'),\n", | |
" (9.01799988746643, 'Programming Fall 2014 Exam 0'),\n", | |
" (8.961999893188477, 'Data Structures Spring 2015 Exam 4'),\n", | |
" (8.859999895095825, 'ACM PPCA 2014 Exam 2'),\n", | |
" (8.769999980926514, 'ACM PPCA 2014 Exam 4'),\n", | |
" (8.658999919891357, '面向对象程序设计第二次上机考试'),\n", | |
" (8.641999959945679, '2016秋数据结构第六次作业(俞勇班)'),\n", | |
" (8.605999946594238, 'Data Structures Spring 2015 Exam 3'),\n", | |
" (8.560999870300293, 'Data Structures Spring 2015 Exam 3'),\n", | |
" (8.460000038146973, 'Data Structure Spring 2014 Homework 4'),\n", | |
" (8.263999938964844, 'SEIEE-Yu Yong Data Structure 2015 Fall Homework 2'),\n", | |
" (8.263999938964844, 'Programming Fall Homework 1 for OIER'),\n", | |
" (8.263999938964844, 'Programming Fall 2015 Homework 1 for Freshman '),\n", | |
" (8.174999952316284, '2016秋数据结构第四次作业(俞勇班)'),\n", | |
" (8.155999898910522, 'IEEE Programming 2015 Fall Homework 5'),\n", | |
" (8.130000114440918, 'IEEE Programming 2014 Homework 5'),\n", | |
" (8.115000009536743, 'Programming Fall Extra Homework 2'),\n", | |
" (8.056999921798706, '2016秋数据结构第七次作业(俞勇班)'),\n", | |
" (8.044000148773193, '2016秋数据结构Final Homework(俞勇班)'),\n", | |
" (8.031000137329102, '面向对象程序设计上机第十五周作业'),\n", | |
" (7.809999942779541, 'Data Structure Spring 2016 Homework 1'),\n", | |
" (7.553999900817871, 'Programming Fall Homework 2 for OIER'),\n", | |
" (7.553999900817871, 'Programming Fall 2015 Homework 2 for Freshman '),\n", | |
" (7.549999952316284, 'ACM PPCA 2014 Exam 5'),\n", | |
" (7.4700000286102295, 'Programming Fall 2013 Exam 4'),\n", | |
" (7.456999778747559, '2016秋数据结构第一次作业(俞勇班)'),\n", | |
" (7.409999847412109, 'Programming Fall 2013 Exam 1'),\n", | |
" (7.319000005722046, '2012级数据结构作业_龚玲班(一)'),\n", | |
" (7.216000080108643, 'IEEE Data-Structure 2016 Spring Homework 1'),\n", | |
" (7.13700008392334, '数据结构第一次作业【俞老师班】'),\n", | |
" (7.13700008392334, 'SEIEE-Yu Yong Data Structure 2015 Fall Homework 1-ex'),\n", | |
" (7.074000120162964, 'ACM Programming 2016 Homework 3 续'),\n", | |
" (7.010999917984009, ' 面向对象程序设计-第五周上机考试'),\n", | |
" (7.0, 'IEEE Programming 2014 Homework 1'),\n", | |
" (6.924000024795532, 'Programming Fall 2014 Homework 3'),\n", | |
" (6.509999990463257, 'Data Structures Spring 2015 Exam 0'),\n", | |
" (6.509999990463257, 'ACM PPCA 2014 Exam 6'),\n", | |
" (6.476999998092651, 'Programming Fall 2014 Exam 2'),\n", | |
" (6.476999998092651, '2014数据结构第七次作业_俞勇班'),\n", | |
" (6.450999975204468, 'Data Structures Spring 2015 Exam 5'),\n", | |
" (6.2170000076293945, 'ACM Programming 2016 Homework 1 for Zhu Feng'),\n", | |
" (6.210000038146973, 'ACM PPCA 2014 Exam 0'),\n", | |
" (6.159999847412109, '2014数据结构第十次作业_俞勇班'),\n", | |
" (6.159999847412109, '2014数据结构第八、九次作业_俞勇班'),\n", | |
" (6.119000196456909, 'Programming Fall 2015 Exam 3'),\n", | |
" (6.075000047683716, 'Data Structures Spring 2015 Exam 3(+900s)'),\n", | |
" (6.068000078201294, 'IEEE Data Structures Spring 2013 Homework 2'),\n", | |
" (6.0, 'ACM-PPCA2013 EXAM 3'),\n", | |
" (5.980000019073486, 'IEEE Programming 2014 Homework 4'),\n", | |
" (5.4079999923706055, 'SEIEE-Yu Yong Data Structure 2015 Fall Homework 3'),\n", | |
" (5.4079999923706055, 'Programming Fall 2015 Extend Homework 1 for Freshman'),\n", | |
" (5.322999954223633, 'Programming Fall 2015 Exam 1'),\n", | |
" (5.033999919891357, '面向对象程序设计上机第四周作业'),\n", | |
" (4.706000089645386, 'Programming Fall 2014 Exam 3'),\n", | |
" (4.510999917984009, '面向对象程序设计上机第三周作业'),\n", | |
" (4.400000095367432, '上海交通大学“超级码力”程序设计大奖赛 练习赛'),\n", | |
" (4.272000074386597, '2014数据结构第二次作业_俞勇班'),\n", | |
" (4.272000074386597, '2014数据结构第一次作业'),\n", | |
" (4.049999952316284, 'Programming Fall 2012 Exam 4'),\n", | |
" (4.0, '上海交通大学“超级码力”程序设计大奖赛 练习赛 '),\n", | |
" (4.0, '2016-2017赛季上海交通大学ACM校队选拔热身赛(1) 公众号:上海交大ACM'),\n", | |
" (3.7750000953674316, 'ACM Programming Homework 4 [续]'),\n", | |
" (3.1019999980926514, 'ACM PPCA 2014 Exam 7'),\n", | |
" (3.0, '上海交通大学“超级码力”程序设计大奖赛 练习赛'),\n", | |
" (1.872999906539917, '2016-2017赛季上海交通大学ACM校队选拔热身赛(2) 公众号:上海交大ACM'),\n", | |
" (0, 'Programming Fall 2015 Exam 0')]" | |
] | |
}, | |
"execution_count": 79, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"exam_wait_times(num_judge=1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.6.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment