feat(tests): basic tests
This commit is contained in:
parent
a7eb731730
commit
c509102b37
22 changed files with 17879 additions and 93 deletions
519
tests/fixtures/atcoder_abc100_tasks.html
vendored
Normal file
519
tests/fixtures/atcoder_abc100_tasks.html
vendored
Normal file
|
|
@ -0,0 +1,519 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Tasks - AtCoder Beginner Contest 100</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta http-equiv="Content-Language" content="en" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<meta
|
||||
name="google-site-verification"
|
||||
content="nXGC_JxO0yoP1qBzMnYD_xgufO6leSLw1kyNo2HZltM"
|
||||
/>
|
||||
|
||||
<script
|
||||
async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=G-RC512FD18N"
|
||||
></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || []
|
||||
function gtag() {
|
||||
dataLayer.push(arguments)
|
||||
}
|
||||
gtag('js', new Date())
|
||||
gtag('set', 'user_properties', {
|
||||
login_status: 'logged_out'
|
||||
})
|
||||
gtag('config', 'G-RC512FD18N')
|
||||
</script>
|
||||
|
||||
<meta
|
||||
name="description"
|
||||
content="AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online."
|
||||
/>
|
||||
<meta name="author" content="AtCoder Inc." />
|
||||
|
||||
<meta property="og:site_name" content="AtCoder" />
|
||||
|
||||
<meta property="og:title" content="Tasks - AtCoder Beginner Contest 100" />
|
||||
<meta
|
||||
property="og:description"
|
||||
content="AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online."
|
||||
/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta
|
||||
property="og:url"
|
||||
content="https://atcoder.jp/contests/abc100/tasks"
|
||||
/>
|
||||
<meta
|
||||
property="og:image"
|
||||
content="https://img.atcoder.jp/assets/atcoder.png"
|
||||
/>
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@atcoder" />
|
||||
|
||||
<meta
|
||||
property="twitter:title"
|
||||
content="Tasks - AtCoder Beginner Contest 100"
|
||||
/>
|
||||
|
||||
<link
|
||||
href="//fonts.googleapis.com/css?family=Lato:400,700"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
href="//img.atcoder.jp/public/6372bb3/css/bootstrap.min.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
href="//img.atcoder.jp/public/6372bb3/css/base.css"
|
||||
/>
|
||||
<link
|
||||
rel="shortcut icon"
|
||||
type="image/png"
|
||||
href="//img.atcoder.jp/assets/favicon.png"
|
||||
/>
|
||||
<link rel="apple-touch-icon" href="//img.atcoder.jp/assets/atcoder.png" />
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/lib/jquery-1.9.1.min.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/lib/bootstrap.min.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/cdn/js.cookie.min.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/cdn/moment.min.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/cdn/moment_js-ja.js"></script>
|
||||
<script>
|
||||
var LANG = 'en'
|
||||
var userScreenName = ''
|
||||
var csrfToken = 'q+4tZ4tLQh/4nobcpVAuiml6OVEZOdZDZURhPenxPbc='
|
||||
</script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/utils.js"></script>
|
||||
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/contest.js"></script>
|
||||
<link
|
||||
href="//img.atcoder.jp/public/6372bb3/css/contest.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<script>
|
||||
var contestScreenName = 'abc100'
|
||||
var remainingText = 'Remaining Time'
|
||||
var countDownText = 'Contest begins in'
|
||||
var startTime = moment('2018-06-16T21:00:00+09:00')
|
||||
var endTime = moment('2018-06-16T22:40:00+09:00')
|
||||
</script>
|
||||
<style></style>
|
||||
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/base.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/javascript">
|
||||
var __pParams = __pParams || []
|
||||
__pParams.push({
|
||||
client_id: '468',
|
||||
c_1: 'atcodercontest',
|
||||
c_2: 'ClientSite'
|
||||
})
|
||||
</script>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://cdn.d2-apps.net/js/tr.js"
|
||||
async
|
||||
></script>
|
||||
|
||||
<div
|
||||
id="modal-contest-start"
|
||||
class="modal fade"
|
||||
tabindex="-1"
|
||||
role="dialog"
|
||||
>
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
>
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title">Contest started</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>AtCoder Beginner Contest 100 has begun.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="modal-contest-end" class="modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
>
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title">Contest is over</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>AtCoder Beginner Contest 100 has ended.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="main-div" class="float-container">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<button
|
||||
type="button"
|
||||
class="navbar-toggle collapsed"
|
||||
data-toggle="collapse"
|
||||
data-target="#navbar-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<span class="icon-bar"></span><span class="icon-bar"></span
|
||||
><span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/home"></a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="navbar-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li>
|
||||
<a class="contest-title" href="/contests/abc100"
|
||||
>AtCoder Beginner Contest 100</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="dropdown">
|
||||
<a
|
||||
class="dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
href="#"
|
||||
role="button"
|
||||
aria-haspopup="true"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<img src="//img.atcoder.jp/assets/top/img/flag-lang/en.png" />
|
||||
English <span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="/contests/abc100/tasks?lang=ja"
|
||||
><img
|
||||
src="//img.atcoder.jp/assets/top/img/flag-lang/ja.png"
|
||||
/>
|
||||
日本語</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contests/abc100/tasks?lang=en"
|
||||
><img
|
||||
src="//img.atcoder.jp/assets/top/img/flag-lang/en.png"
|
||||
/>
|
||||
English</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a
|
||||
href="/register?continue=https%3A%2F%2Fatcoder.jp%2Fcontests%2Fabc100%2Ftasks"
|
||||
>Sign Up</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="/login?continue=https%3A%2F%2Fatcoder.jp%2Fcontests%2Fabc100%2Ftasks"
|
||||
>Sign In</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<form
|
||||
method="POST"
|
||||
name="form_logout"
|
||||
action="/logout?continue=https%3A%2F%2Fatcoder.jp%2Fcontests%2Fabc100%2Ftasks"
|
||||
>
|
||||
<input
|
||||
type="hidden"
|
||||
name="csrf_token"
|
||||
value="q+4tZ4tLQh/4nobcpVAuiml6OVEZOdZDZURhPenxPbc="
|
||||
/>
|
||||
</form>
|
||||
<div id="main-container" class="container" style="padding-top: 50px">
|
||||
<div class="row">
|
||||
<div id="contest-nav-tabs" class="col-sm-12 mb-2 cnvtb-fixed">
|
||||
<div>
|
||||
<small class="contest-duration">
|
||||
Contest Duration:
|
||||
<a
|
||||
href="http://www.timeanddate.com/worldclock/fixedtime.html?iso=20180616T2100&p1=248"
|
||||
target="blank"
|
||||
><time class="fixtime fixtime-full"
|
||||
>2018-06-16 21:00:00+0900</time
|
||||
></a
|
||||
>
|
||||
-
|
||||
<a
|
||||
href="http://www.timeanddate.com/worldclock/fixedtime.html?iso=20180616T2240&p1=248"
|
||||
target="blank"
|
||||
><time class="fixtime fixtime-full"
|
||||
>2018-06-16 22:40:00+0900</time
|
||||
></a
|
||||
>
|
||||
(local time) (100 minutes)
|
||||
</small>
|
||||
<small class="back-to-home pull-right"
|
||||
><a href="/home">Back to Home</a></small
|
||||
>
|
||||
</div>
|
||||
<ul class="nav nav-tabs">
|
||||
<li>
|
||||
<a href="/contests/abc100"
|
||||
><span
|
||||
class="glyphicon glyphicon-home"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Top</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/contests/abc100/tasks"
|
||||
><span
|
||||
class="glyphicon glyphicon-tasks"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Tasks</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contests/abc100/clarifications"
|
||||
><span
|
||||
class="glyphicon glyphicon-question-sign"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Clarifications <span id="clar-badge" class="badge"></span
|
||||
></a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a
|
||||
class="dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
href="#"
|
||||
role="button"
|
||||
aria-haspopup="true"
|
||||
aria-expanded="false"
|
||||
><span
|
||||
class="glyphicon glyphicon-list"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Results<span class="caret"></span
|
||||
></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="/contests/abc100/submissions"
|
||||
><span
|
||||
class="glyphicon glyphicon-globe"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
All Submissions</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contests/abc100/standings"
|
||||
><span
|
||||
class="glyphicon glyphicon-sort-by-attributes-alt"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Standings</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contests/abc100/standings/virtual"
|
||||
><span
|
||||
class="glyphicon glyphicon-sort-by-attributes-alt"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Virtual Standings</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contests/abc100/editorial"
|
||||
><span
|
||||
class="glyphicon glyphicon-book"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Editorial</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li class="pull-right">
|
||||
<a id="fix-cnvtb" href="javascript:void(0)"
|
||||
><span
|
||||
class="glyphicon glyphicon-pushpin"
|
||||
aria-hidden="true"
|
||||
></span
|
||||
></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<h2>Tasks</h2>
|
||||
<hr />
|
||||
|
||||
<div class="panel panel-default table-responsive">
|
||||
<table class="table table-bordered table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="3%" class="text-center"></th>
|
||||
<th>Task Name</th>
|
||||
<th width="10%" class="text-right no-break">Time Limit</th>
|
||||
<th width="10%" class="text-right no-break">
|
||||
Memory Limit
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-center no-break">
|
||||
<a href="/contests/abc100/tasks/abc100_a">A</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="/contests/abc100/tasks/abc100_a"
|
||||
>Happy Birthday!</a
|
||||
>
|
||||
</td>
|
||||
<td class="text-right">2 sec</td>
|
||||
<td class="text-right">976 MiB</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="text-center no-break">
|
||||
<a href="/contests/abc100/tasks/abc100_b">B</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="/contests/abc100/tasks/abc100_b"
|
||||
>Ringo's Favorite Numbers</a
|
||||
>
|
||||
</td>
|
||||
<td class="text-right">2 sec</td>
|
||||
<td class="text-right">976 MiB</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="text-center no-break">
|
||||
<a href="/contests/abc100/tasks/abc100_c">C</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="/contests/abc100/tasks/abc100_c">*3 or /2</a>
|
||||
</td>
|
||||
<td class="text-right">2 sec</td>
|
||||
<td class="text-right">976 MiB</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="text-center no-break">
|
||||
<a href="/contests/abc100/tasks/abc100_d">D</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="/contests/abc100/tasks/abc100_d"
|
||||
>Patisserie ABC</a
|
||||
>
|
||||
</td>
|
||||
<td class="text-right">2 sec</td>
|
||||
<td class="text-right">976 MiB</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p class="btn-text-group">
|
||||
<a class="btn-text" href="/contests/abc100/tasks_print"
|
||||
>Tasks for printing</a
|
||||
>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div
|
||||
class="a2a_kit a2a_kit_size_20 a2a_default_style pull-right"
|
||||
data-a2a-url="https://atcoder.jp/contests/abc100/tasks?lang=en"
|
||||
data-a2a-title="Tasks - AtCoder Beginner Contest 100"
|
||||
>
|
||||
<a class="a2a_button_facebook"></a>
|
||||
<a class="a2a_button_twitter"></a>
|
||||
|
||||
<a class="a2a_button_telegram"></a>
|
||||
|
||||
<a class="a2a_dd" href="https://www.addtoany.com/share"></a>
|
||||
</div>
|
||||
|
||||
<script async src="//static.addtoany.com/menu/page.js"></script>
|
||||
</div>
|
||||
<hr />
|
||||
</div>
|
||||
|
||||
<div class="container" style="margin-bottom: 80px">
|
||||
<footer class="footer">
|
||||
<ul>
|
||||
<li><a href="/contests/abc100/rules">Rule</a></li>
|
||||
<li><a href="/contests/abc100/glossary">Glossary</a></li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><a href="/tos">Terms of service</a></li>
|
||||
<li><a href="/privacy">Privacy Policy</a></li>
|
||||
<li><a href="/personal">Information Protection Policy</a></li>
|
||||
<li><a href="/company">Company</a></li>
|
||||
<li><a href="/faq">FAQ</a></li>
|
||||
<li><a href="/contact">Contact</a></li>
|
||||
</ul>
|
||||
<div class="text-center">
|
||||
<small id="copyright"
|
||||
>Copyright Since 2012 ©<a href="http://atcoder.co.jp"
|
||||
>AtCoder Inc.</a
|
||||
>
|
||||
All rights reserved.</small
|
||||
>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
<p id="fixed-server-timer" class="contest-timer"></p>
|
||||
<div id="scroll-page-top" style="display: none">
|
||||
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span> Page
|
||||
Top
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
1902
tests/fixtures/atcoder_contests.html
vendored
Normal file
1902
tests/fixtures/atcoder_contests.html
vendored
Normal file
File diff suppressed because it is too large
Load diff
885
tests/fixtures/atcoder_task_abc100_a.html
vendored
Normal file
885
tests/fixtures/atcoder_task_abc100_a.html
vendored
Normal file
|
|
@ -0,0 +1,885 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>A - Happy Birthday!</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta http-equiv="Content-Language" content="en" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<meta
|
||||
name="google-site-verification"
|
||||
content="nXGC_JxO0yoP1qBzMnYD_xgufO6leSLw1kyNo2HZltM"
|
||||
/>
|
||||
|
||||
<script
|
||||
async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=G-RC512FD18N"
|
||||
></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || []
|
||||
function gtag() {
|
||||
dataLayer.push(arguments)
|
||||
}
|
||||
gtag('js', new Date())
|
||||
gtag('set', 'user_properties', {
|
||||
login_status: 'logged_out'
|
||||
})
|
||||
gtag('config', 'G-RC512FD18N')
|
||||
</script>
|
||||
|
||||
<meta
|
||||
name="description"
|
||||
content="AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online."
|
||||
/>
|
||||
<meta name="author" content="AtCoder Inc." />
|
||||
|
||||
<meta property="og:site_name" content="AtCoder" />
|
||||
|
||||
<meta property="og:title" content="A - Happy Birthday!" />
|
||||
<meta
|
||||
property="og:description"
|
||||
content="AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online."
|
||||
/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta
|
||||
property="og:url"
|
||||
content="https://atcoder.jp/contests/abc100/tasks/abc100_a"
|
||||
/>
|
||||
<meta
|
||||
property="og:image"
|
||||
content="https://img.atcoder.jp/assets/atcoder.png"
|
||||
/>
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@atcoder" />
|
||||
|
||||
<meta property="twitter:title" content="A - Happy Birthday!" />
|
||||
|
||||
<link
|
||||
href="//fonts.googleapis.com/css?family=Lato:400,700"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
href="//img.atcoder.jp/public/6372bb3/css/bootstrap.min.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
href="//img.atcoder.jp/public/6372bb3/css/base.css"
|
||||
/>
|
||||
<link
|
||||
rel="shortcut icon"
|
||||
type="image/png"
|
||||
href="//img.atcoder.jp/assets/favicon.png"
|
||||
/>
|
||||
<link rel="apple-touch-icon" href="//img.atcoder.jp/assets/atcoder.png" />
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/lib/jquery-1.9.1.min.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/lib/bootstrap.min.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/cdn/js.cookie.min.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/cdn/moment.min.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/cdn/moment_js-ja.js"></script>
|
||||
<script>
|
||||
var LANG = 'en'
|
||||
var userScreenName = ''
|
||||
var csrfToken = 'IHvNJXcA2LTFdl1UlqkJVdhRBg/6RvcHG1jLWfRmR44='
|
||||
</script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/utils.js"></script>
|
||||
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/contest.js"></script>
|
||||
<link
|
||||
href="//img.atcoder.jp/public/6372bb3/css/contest.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<script>
|
||||
var contestScreenName = 'abc100'
|
||||
var remainingText = 'Remaining Time'
|
||||
var countDownText = 'Contest begins in'
|
||||
var startTime = moment('2018-06-16T21:00:00+09:00')
|
||||
var endTime = moment('2018-06-16T22:40:00+09:00')
|
||||
</script>
|
||||
<style></style>
|
||||
|
||||
<link
|
||||
href="//img.atcoder.jp/public/6372bb3/css/cdn/select2.min.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link
|
||||
href="//img.atcoder.jp/public/6372bb3/css/cdn/select2-bootstrap.min.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/lib/select2.min.js"></script>
|
||||
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/ace/ace.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/ace/ext-language_tools.js"></script>
|
||||
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/cdn/run_prettify.js"></script>
|
||||
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="//img.atcoder.jp/public/6372bb3/css/cdn/katex.min.css"
|
||||
/>
|
||||
<script
|
||||
defer
|
||||
src="//img.atcoder.jp/public/6372bb3/js/cdn/katex.min.js"
|
||||
></script>
|
||||
<script
|
||||
defer
|
||||
src="//img.atcoder.jp/public/6372bb3/js/cdn/auto-render.min.js"
|
||||
></script>
|
||||
<script>
|
||||
$(function () {
|
||||
$('var').each(function () {
|
||||
var html = $(this)
|
||||
.html()
|
||||
.replace(/<sub>/g, '_{')
|
||||
.replace(/<\/sub>/g, '}')
|
||||
$(this).html('\\(' + html + '\\)')
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<script>
|
||||
var katexOptions = {
|
||||
delimiters: [
|
||||
{ left: '$$', right: '$$', display: true },
|
||||
|
||||
{ left: '\\(', right: '\\)', display: false },
|
||||
{ left: '\\[', right: '\\]', display: true }
|
||||
],
|
||||
ignoredTags: [
|
||||
'script',
|
||||
'noscript',
|
||||
'style',
|
||||
'textarea',
|
||||
'code',
|
||||
'option'
|
||||
],
|
||||
ignoredClasses: ['prettyprint', 'source-code-for-copy'],
|
||||
throwOnError: false
|
||||
}
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
renderMathInElement(document.body, katexOptions)
|
||||
})
|
||||
</script>
|
||||
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/base.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/javascript">
|
||||
var __pParams = __pParams || []
|
||||
__pParams.push({
|
||||
client_id: '468',
|
||||
c_1: 'atcodercontest',
|
||||
c_2: 'ClientSite'
|
||||
})
|
||||
</script>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://cdn.d2-apps.net/js/tr.js"
|
||||
async
|
||||
></script>
|
||||
|
||||
<div
|
||||
id="modal-contest-start"
|
||||
class="modal fade"
|
||||
tabindex="-1"
|
||||
role="dialog"
|
||||
>
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
>
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title">Contest started</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>AtCoder Beginner Contest 100 has begun.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="modal-contest-end" class="modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
>
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title">Contest is over</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>AtCoder Beginner Contest 100 has ended.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="main-div" class="float-container">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<button
|
||||
type="button"
|
||||
class="navbar-toggle collapsed"
|
||||
data-toggle="collapse"
|
||||
data-target="#navbar-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<span class="icon-bar"></span><span class="icon-bar"></span
|
||||
><span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/home"></a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="navbar-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li>
|
||||
<a class="contest-title" href="/contests/abc100"
|
||||
>AtCoder Beginner Contest 100</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="dropdown">
|
||||
<a
|
||||
class="dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
href="#"
|
||||
role="button"
|
||||
aria-haspopup="true"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<img src="//img.atcoder.jp/assets/top/img/flag-lang/en.png" />
|
||||
English <span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="/contests/abc100/tasks/abc100_a?lang=ja"
|
||||
><img
|
||||
src="//img.atcoder.jp/assets/top/img/flag-lang/ja.png"
|
||||
/>
|
||||
日本語</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contests/abc100/tasks/abc100_a?lang=en"
|
||||
><img
|
||||
src="//img.atcoder.jp/assets/top/img/flag-lang/en.png"
|
||||
/>
|
||||
English</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a
|
||||
href="/register?continue=https%3A%2F%2Fatcoder.jp%2Fcontests%2Fabc100%2Ftasks%2Fabc100_a"
|
||||
>Sign Up</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="/login?continue=https%3A%2F%2Fatcoder.jp%2Fcontests%2Fabc100%2Ftasks%2Fabc100_a"
|
||||
>Sign In</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<form
|
||||
method="POST"
|
||||
name="form_logout"
|
||||
action="/logout?continue=https%3A%2F%2Fatcoder.jp%2Fcontests%2Fabc100%2Ftasks%2Fabc100_a"
|
||||
>
|
||||
<input
|
||||
type="hidden"
|
||||
name="csrf_token"
|
||||
value="IHvNJXcA2LTFdl1UlqkJVdhRBg/6RvcHG1jLWfRmR44="
|
||||
/>
|
||||
</form>
|
||||
<div id="main-container" class="container" style="padding-top: 50px">
|
||||
<div class="row">
|
||||
<div id="contest-nav-tabs" class="col-sm-12 mb-2 cnvtb-fixed">
|
||||
<div>
|
||||
<small class="contest-duration">
|
||||
Contest Duration:
|
||||
<a
|
||||
href="http://www.timeanddate.com/worldclock/fixedtime.html?iso=20180616T2100&p1=248"
|
||||
target="blank"
|
||||
><time class="fixtime fixtime-full"
|
||||
>2018-06-16 21:00:00+0900</time
|
||||
></a
|
||||
>
|
||||
-
|
||||
<a
|
||||
href="http://www.timeanddate.com/worldclock/fixedtime.html?iso=20180616T2240&p1=248"
|
||||
target="blank"
|
||||
><time class="fixtime fixtime-full"
|
||||
>2018-06-16 22:40:00+0900</time
|
||||
></a
|
||||
>
|
||||
(local time) (100 minutes)
|
||||
</small>
|
||||
<small class="back-to-home pull-right"
|
||||
><a href="/home">Back to Home</a></small
|
||||
>
|
||||
</div>
|
||||
<ul class="nav nav-tabs">
|
||||
<li>
|
||||
<a href="/contests/abc100"
|
||||
><span
|
||||
class="glyphicon glyphicon-home"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Top</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/contests/abc100/tasks"
|
||||
><span
|
||||
class="glyphicon glyphicon-tasks"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Tasks</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contests/abc100/clarifications"
|
||||
><span
|
||||
class="glyphicon glyphicon-question-sign"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Clarifications <span id="clar-badge" class="badge"></span
|
||||
></a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a
|
||||
class="dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
href="#"
|
||||
role="button"
|
||||
aria-haspopup="true"
|
||||
aria-expanded="false"
|
||||
><span
|
||||
class="glyphicon glyphicon-list"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Results<span class="caret"></span
|
||||
></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="/contests/abc100/submissions"
|
||||
><span
|
||||
class="glyphicon glyphicon-globe"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
All Submissions</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contests/abc100/standings"
|
||||
><span
|
||||
class="glyphicon glyphicon-sort-by-attributes-alt"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Standings</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contests/abc100/standings/virtual"
|
||||
><span
|
||||
class="glyphicon glyphicon-sort-by-attributes-alt"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Virtual Standings</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contests/abc100/editorial"
|
||||
><span
|
||||
class="glyphicon glyphicon-book"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Editorial</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li class="pull-right">
|
||||
<a id="fix-cnvtb" href="javascript:void(0)"
|
||||
><span
|
||||
class="glyphicon glyphicon-pushpin"
|
||||
aria-hidden="true"
|
||||
></span
|
||||
></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<span class="h2">
|
||||
A - Happy Birthday!
|
||||
<a
|
||||
class="btn btn-default btn-sm"
|
||||
href="/contests/abc100/tasks/abc100_a/editorial"
|
||||
>Editorial</a
|
||||
>
|
||||
</span>
|
||||
<span id="task-lang-btn" class="pull-right"
|
||||
><span data-lang="ja"
|
||||
><img src="//img.atcoder.jp/assets/top/img/flag-lang/ja.png"
|
||||
/></span>
|
||||
/
|
||||
<span data-lang="en"
|
||||
><img
|
||||
src="//img.atcoder.jp/assets/top/img/flag-lang/en.png" /></span
|
||||
></span>
|
||||
<script>
|
||||
$(function () {
|
||||
var ts = $('#task-statement span.lang')
|
||||
if (ts.children('span').size() <= 1) {
|
||||
$('#task-lang-btn').hide()
|
||||
ts.children('span').show()
|
||||
return
|
||||
}
|
||||
|
||||
var REMEMBER_LB = 5
|
||||
var LS_KEY = 'task_lang'
|
||||
var taskLang = getLS(LS_KEY) || ''
|
||||
function isTaskLangSet(taskLang) {
|
||||
return taskLang === 'ja' || taskLang === 'en'
|
||||
}
|
||||
if (isTaskLangSet(taskLang)) {
|
||||
const params = new URLSearchParams(window.location.search)
|
||||
if (params.get('lang')) {
|
||||
setLS(LS_KEY, REMEMBER_LB)
|
||||
taskLang = LANG
|
||||
}
|
||||
} else {
|
||||
taskLang = LANG
|
||||
}
|
||||
ts.children('span.lang-' + taskLang).show()
|
||||
|
||||
$('#task-lang-btn span').click(function () {
|
||||
var l = $(this).data('lang')
|
||||
ts.children('span').hide()
|
||||
ts.children('span.lang-' + l).show()
|
||||
|
||||
taskLang = getLS(LS_KEY) || ''
|
||||
let changeTimes = 0
|
||||
if (isTaskLangSet(taskLang)) {
|
||||
changeTimes = REMEMBER_LB
|
||||
} else {
|
||||
changeTimes = parseInt(taskLang, 10)
|
||||
if (isNaN(changeTimes)) changeTimes = 0
|
||||
changeTimes++
|
||||
}
|
||||
if (changeTimes < REMEMBER_LB) setLS(LS_KEY, changeTimes)
|
||||
else setLS(LS_KEY, l)
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<hr />
|
||||
<p>Time Limit: 2 sec / Memory Limit: 976 MiB</p>
|
||||
|
||||
<div id="task-statement">
|
||||
<span class="lang">
|
||||
<span class="lang-ja">
|
||||
<p>配点: <var>100</var> 点</p>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>問題文</h3>
|
||||
<p>
|
||||
もうすぐ E869120 君と square1001 君の
|
||||
<var>16</var> 才の誕生日が来る.<br />
|
||||
そこで, AtCoder 王国の高橋君は, 円形のケーキ
|
||||
<var>1</var> 個に放射状に切れ目を入れ
|
||||
<var>16</var> 等分したものを, 彼らにプレゼントした.
|
||||
</p>
|
||||
<p>
|
||||
E869120 君はそのうち <var>A</var> 切れ、square1001 君は
|
||||
<var>B</var> 切れを食べようとした.<br />
|
||||
しかし, ケーキと一緒についていた紙を見ると,
|
||||
「同じ人が隣り合う
|
||||
<var>2</var>
|
||||
切れのケーキを両方取ってはならない」と書かれていた.
|
||||
</p>
|
||||
<p>
|
||||
さて、彼らは紙に書かれたことを守って、<var>2</var>
|
||||
人とも食べたい数のケーキを取ることができるだろうか?
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>制約</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<var>A, B</var> は <var>1</var> 以上
|
||||
<var>16</var> 以下の整数
|
||||
</li>
|
||||
<li><var>A+B</var> は <var>16</var> 以下である.</li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="io-style">
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>入力</h3>
|
||||
<p>入力は以下の形式で標準入力から与えられる.</p>
|
||||
<pre><var>A</var> <var>B</var>
|
||||
</pre>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>出力</h3>
|
||||
<p>
|
||||
紙に書かれたことを守って, E869120 君と square1001
|
||||
君両方が, 食べたい数のケーキを取ることができるならば
|
||||
<code>Yay!</code>, そうでなければ
|
||||
<code>:(</code> と出力しなさい.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>入力例 1</h3>
|
||||
<pre>
|
||||
5 4
|
||||
</pre
|
||||
>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>出力例 1</h3>
|
||||
<pre>
|
||||
Yay!
|
||||
</pre
|
||||
>
|
||||
|
||||
<p>
|
||||
下の図のようにケーキを取れば、<var>2</var>
|
||||
人とも目標を達成することができる.<br />
|
||||
<img
|
||||
alt=" "
|
||||
src="https://img.atcoder.jp/abc100/e87fa456a900ac9ae36671ae8bd5eeea.png"
|
||||
/>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>入力例 2</h3>
|
||||
<pre>
|
||||
8 8
|
||||
</pre
|
||||
>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>出力例 2</h3>
|
||||
<pre>
|
||||
Yay!
|
||||
</pre
|
||||
>
|
||||
|
||||
<p>
|
||||
下の図のようにケーキを取れば、<var>2</var>
|
||||
人とも目標を達成することができる.<br />
|
||||
<img
|
||||
alt=" "
|
||||
src="https://img.atcoder.jp/abc100/a7989ac033e6ba86e14078864c20d9c5.png"
|
||||
/>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>入力例 3</h3>
|
||||
<pre>
|
||||
11 4
|
||||
</pre
|
||||
>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>出力例 3</h3>
|
||||
<pre>
|
||||
:(
|
||||
</pre
|
||||
>
|
||||
|
||||
<p>
|
||||
この場合, 残念ながら目標を達成する方法は
|
||||
<var>1</var> つもない.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
</span>
|
||||
<span class="lang-en">
|
||||
<p>Score: <var>100</var> points</p>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Problem Statement</h3>
|
||||
<p>
|
||||
E869120's and square1001's <var>16</var>-th birthday is
|
||||
coming soon.<br />
|
||||
Takahashi from AtCoder Kingdom gave them a round cake
|
||||
cut into <var>16</var> equal fan-shaped pieces.
|
||||
</p>
|
||||
<p>
|
||||
E869120 and square1001 were just about to eat
|
||||
<var>A</var> and <var>B</var> of those pieces,
|
||||
respectively,<br />
|
||||
when they found a note attached to the cake saying that
|
||||
"the same person should not take two adjacent pieces of
|
||||
cake".
|
||||
</p>
|
||||
<p>
|
||||
Can both of them obey the instruction in the note and
|
||||
take desired numbers of pieces of cake?
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Constraints</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<var>A</var> and <var>B</var> are integers between
|
||||
<var>1</var> and <var>16</var> (inclusive).
|
||||
</li>
|
||||
<li><var>A+B</var> is at most <var>16</var>.</li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="io-style">
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Input</h3>
|
||||
<p>
|
||||
Input is given from Standard Input in the following
|
||||
format:
|
||||
</p>
|
||||
<pre><var>A</var> <var>B</var>
|
||||
</pre>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Output</h3>
|
||||
<p>
|
||||
If both E869120 and square1001 can obey the
|
||||
instruction in the note and take desired numbers of
|
||||
pieces of cake, print <code>Yay!</code>; otherwise,
|
||||
print <code>:(</code>.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Sample Input 1</h3>
|
||||
<pre>
|
||||
5 4
|
||||
</pre
|
||||
>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Sample Output 1</h3>
|
||||
<pre>
|
||||
Yay!
|
||||
</pre
|
||||
>
|
||||
|
||||
<p>
|
||||
Both of them can take desired number of pieces as
|
||||
follows:
|
||||
<img
|
||||
alt=" "
|
||||
src="https://img.atcoder.jp/abc100/e87fa456a900ac9ae36671ae8bd5eeea.png"
|
||||
/>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Sample Input 2</h3>
|
||||
<pre>
|
||||
8 8
|
||||
</pre
|
||||
>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Sample Output 2</h3>
|
||||
<pre>
|
||||
Yay!
|
||||
</pre
|
||||
>
|
||||
|
||||
<p>
|
||||
Both of them can take desired number of pieces as
|
||||
follows:
|
||||
<img
|
||||
alt=" "
|
||||
src="https://img.atcoder.jp/abc100/a7989ac033e6ba86e14078864c20d9c5.png"
|
||||
/>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Sample Input 3</h3>
|
||||
<pre>
|
||||
11 4
|
||||
</pre
|
||||
>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Sample Output 3</h3>
|
||||
<pre>
|
||||
:(
|
||||
</pre
|
||||
>
|
||||
|
||||
<p>
|
||||
In this case, there is no way for them to take desired
|
||||
number of pieces, unfortunately.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div
|
||||
class="a2a_kit a2a_kit_size_20 a2a_default_style pull-right"
|
||||
data-a2a-url="https://atcoder.jp/contests/abc100/tasks/abc100_a?lang=en"
|
||||
data-a2a-title="A - Happy Birthday!"
|
||||
>
|
||||
<a class="a2a_button_facebook"></a>
|
||||
<a class="a2a_button_twitter"></a>
|
||||
|
||||
<a class="a2a_button_telegram"></a>
|
||||
|
||||
<a class="a2a_dd" href="https://www.addtoany.com/share"></a>
|
||||
</div>
|
||||
|
||||
<script async src="//static.addtoany.com/menu/page.js"></script>
|
||||
</div>
|
||||
<hr />
|
||||
</div>
|
||||
|
||||
<div class="container" style="margin-bottom: 80px">
|
||||
<footer class="footer">
|
||||
<ul>
|
||||
<li><a href="/contests/abc100/rules">Rule</a></li>
|
||||
<li><a href="/contests/abc100/glossary">Glossary</a></li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><a href="/tos">Terms of service</a></li>
|
||||
<li><a href="/privacy">Privacy Policy</a></li>
|
||||
<li><a href="/personal">Information Protection Policy</a></li>
|
||||
<li><a href="/company">Company</a></li>
|
||||
<li><a href="/faq">FAQ</a></li>
|
||||
<li><a href="/contact">Contact</a></li>
|
||||
</ul>
|
||||
<div class="text-center">
|
||||
<small id="copyright"
|
||||
>Copyright Since 2012 ©<a href="http://atcoder.co.jp"
|
||||
>AtCoder Inc.</a
|
||||
>
|
||||
All rights reserved.</small
|
||||
>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
<p id="fixed-server-timer" class="contest-timer"></p>
|
||||
<div id="scroll-page-top" style="display: none">
|
||||
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span> Page
|
||||
Top
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
887
tests/fixtures/atcoder_task_abc100_b.html
vendored
Normal file
887
tests/fixtures/atcoder_task_abc100_b.html
vendored
Normal file
|
|
@ -0,0 +1,887 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>B - Ringo's Favorite Numbers</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta http-equiv="Content-Language" content="en" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<meta
|
||||
name="google-site-verification"
|
||||
content="nXGC_JxO0yoP1qBzMnYD_xgufO6leSLw1kyNo2HZltM"
|
||||
/>
|
||||
|
||||
<script
|
||||
async
|
||||
src="https://www.googletagmanager.com/gtag/js?id=G-RC512FD18N"
|
||||
></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || []
|
||||
function gtag() {
|
||||
dataLayer.push(arguments)
|
||||
}
|
||||
gtag('js', new Date())
|
||||
gtag('set', 'user_properties', {
|
||||
login_status: 'logged_out'
|
||||
})
|
||||
gtag('config', 'G-RC512FD18N')
|
||||
</script>
|
||||
|
||||
<meta
|
||||
name="description"
|
||||
content="AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online."
|
||||
/>
|
||||
<meta name="author" content="AtCoder Inc." />
|
||||
|
||||
<meta property="og:site_name" content="AtCoder" />
|
||||
|
||||
<meta property="og:title" content="B - Ringo's Favorite Numbers" />
|
||||
<meta
|
||||
property="og:description"
|
||||
content="AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online."
|
||||
/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta
|
||||
property="og:url"
|
||||
content="https://atcoder.jp/contests/abc100/tasks/abc100_b"
|
||||
/>
|
||||
<meta
|
||||
property="og:image"
|
||||
content="https://img.atcoder.jp/assets/atcoder.png"
|
||||
/>
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@atcoder" />
|
||||
|
||||
<meta property="twitter:title" content="B - Ringo's Favorite Numbers" />
|
||||
|
||||
<link
|
||||
href="//fonts.googleapis.com/css?family=Lato:400,700"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
href="//img.atcoder.jp/public/6372bb3/css/bootstrap.min.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
href="//img.atcoder.jp/public/6372bb3/css/base.css"
|
||||
/>
|
||||
<link
|
||||
rel="shortcut icon"
|
||||
type="image/png"
|
||||
href="//img.atcoder.jp/assets/favicon.png"
|
||||
/>
|
||||
<link rel="apple-touch-icon" href="//img.atcoder.jp/assets/atcoder.png" />
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/lib/jquery-1.9.1.min.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/lib/bootstrap.min.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/cdn/js.cookie.min.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/cdn/moment.min.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/cdn/moment_js-ja.js"></script>
|
||||
<script>
|
||||
var LANG = 'en'
|
||||
var userScreenName = ''
|
||||
var csrfToken = 'o2ayF7Lv34NtRIbcb0Ixvog2CrZtUEVLZNKuIuHQKH8='
|
||||
</script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/utils.js"></script>
|
||||
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/contest.js"></script>
|
||||
<link
|
||||
href="//img.atcoder.jp/public/6372bb3/css/contest.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<script>
|
||||
var contestScreenName = 'abc100'
|
||||
var remainingText = 'Remaining Time'
|
||||
var countDownText = 'Contest begins in'
|
||||
var startTime = moment('2018-06-16T21:00:00+09:00')
|
||||
var endTime = moment('2018-06-16T22:40:00+09:00')
|
||||
</script>
|
||||
<style></style>
|
||||
|
||||
<link
|
||||
href="//img.atcoder.jp/public/6372bb3/css/cdn/select2.min.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<link
|
||||
href="//img.atcoder.jp/public/6372bb3/css/cdn/select2-bootstrap.min.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/lib/select2.min.js"></script>
|
||||
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/ace/ace.js"></script>
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/ace/ext-language_tools.js"></script>
|
||||
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/cdn/run_prettify.js"></script>
|
||||
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="//img.atcoder.jp/public/6372bb3/css/cdn/katex.min.css"
|
||||
/>
|
||||
<script
|
||||
defer
|
||||
src="//img.atcoder.jp/public/6372bb3/js/cdn/katex.min.js"
|
||||
></script>
|
||||
<script
|
||||
defer
|
||||
src="//img.atcoder.jp/public/6372bb3/js/cdn/auto-render.min.js"
|
||||
></script>
|
||||
<script>
|
||||
$(function () {
|
||||
$('var').each(function () {
|
||||
var html = $(this)
|
||||
.html()
|
||||
.replace(/<sub>/g, '_{')
|
||||
.replace(/<\/sub>/g, '}')
|
||||
$(this).html('\\(' + html + '\\)')
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<script>
|
||||
var katexOptions = {
|
||||
delimiters: [
|
||||
{ left: '$$', right: '$$', display: true },
|
||||
|
||||
{ left: '\\(', right: '\\)', display: false },
|
||||
{ left: '\\[', right: '\\]', display: true }
|
||||
],
|
||||
ignoredTags: [
|
||||
'script',
|
||||
'noscript',
|
||||
'style',
|
||||
'textarea',
|
||||
'code',
|
||||
'option'
|
||||
],
|
||||
ignoredClasses: ['prettyprint', 'source-code-for-copy'],
|
||||
throwOnError: false
|
||||
}
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
renderMathInElement(document.body, katexOptions)
|
||||
})
|
||||
</script>
|
||||
|
||||
<script src="//img.atcoder.jp/public/6372bb3/js/base.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/javascript">
|
||||
var __pParams = __pParams || []
|
||||
__pParams.push({
|
||||
client_id: '468',
|
||||
c_1: 'atcodercontest',
|
||||
c_2: 'ClientSite'
|
||||
})
|
||||
</script>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://cdn.d2-apps.net/js/tr.js"
|
||||
async
|
||||
></script>
|
||||
|
||||
<div
|
||||
id="modal-contest-start"
|
||||
class="modal fade"
|
||||
tabindex="-1"
|
||||
role="dialog"
|
||||
>
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
>
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title">Contest started</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>AtCoder Beginner Contest 100 has begun.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="modal-contest-end" class="modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
>
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title">Contest is over</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>AtCoder Beginner Contest 100 has ended.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="main-div" class="float-container">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<button
|
||||
type="button"
|
||||
class="navbar-toggle collapsed"
|
||||
data-toggle="collapse"
|
||||
data-target="#navbar-collapse"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<span class="icon-bar"></span><span class="icon-bar"></span
|
||||
><span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/home"></a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="navbar-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li>
|
||||
<a class="contest-title" href="/contests/abc100"
|
||||
>AtCoder Beginner Contest 100</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="dropdown">
|
||||
<a
|
||||
class="dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
href="#"
|
||||
role="button"
|
||||
aria-haspopup="true"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<img src="//img.atcoder.jp/assets/top/img/flag-lang/en.png" />
|
||||
English <span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="/contests/abc100/tasks/abc100_b?lang=ja"
|
||||
><img
|
||||
src="//img.atcoder.jp/assets/top/img/flag-lang/ja.png"
|
||||
/>
|
||||
日本語</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/contests/abc100/tasks/abc100_b?lang=en"
|
||||
><img
|
||||
src="//img.atcoder.jp/assets/top/img/flag-lang/en.png"
|
||||
/>
|
||||
English</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a
|
||||
href="/register?continue=https%3A%2F%2Fatcoder.jp%2Fcontests%2Fabc100%2Ftasks%2Fabc100_b"
|
||||
>Sign Up</a
|
||||
>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="/login?continue=https%3A%2F%2Fatcoder.jp%2Fcontests%2Fabc100%2Ftasks%2Fabc100_b"
|
||||
>Sign In</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<form
|
||||
method="POST"
|
||||
name="form_logout"
|
||||
action="/logout?continue=https%3A%2F%2Fatcoder.jp%2Fcontests%2Fabc100%2Ftasks%2Fabc100_b"
|
||||
>
|
||||
<input
|
||||
type="hidden"
|
||||
name="csrf_token"
|
||||
value="o2ayF7Lv34NtRIbcb0Ixvog2CrZtUEVLZNKuIuHQKH8="
|
||||
/>
|
||||
</form>
|
||||
<div id="main-container" class="container" style="padding-top: 50px">
|
||||
<div class="row">
|
||||
<div id="contest-nav-tabs" class="col-sm-12 mb-2 cnvtb-fixed">
|
||||
<div>
|
||||
<small class="contest-duration">
|
||||
Contest Duration:
|
||||
<a
|
||||
href="http://www.timeanddate.com/worldclock/fixedtime.html?iso=20180616T2100&p1=248"
|
||||
target="blank"
|
||||
><time class="fixtime fixtime-full"
|
||||
>2018-06-16 21:00:00+0900</time
|
||||
></a
|
||||
>
|
||||
-
|
||||
<a
|
||||
href="http://www.timeanddate.com/worldclock/fixedtime.html?iso=20180616T2240&p1=248"
|
||||
target="blank"
|
||||
><time class="fixtime fixtime-full"
|
||||
>2018-06-16 22:40:00+0900</time
|
||||
></a
|
||||
>
|
||||
(local time) (100 minutes)
|
||||
</small>
|
||||
<small class="back-to-home pull-right"
|
||||
><a href="/home">Back to Home</a></small
|
||||
>
|
||||
</div>
|
||||
<ul class="nav nav-tabs">
|
||||
<li>
|
||||
<a href="/contests/abc100"
|
||||
><span
|
||||
class="glyphicon glyphicon-home"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Top</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/contests/abc100/tasks"
|
||||
><span
|
||||
class="glyphicon glyphicon-tasks"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Tasks</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contests/abc100/clarifications"
|
||||
><span
|
||||
class="glyphicon glyphicon-question-sign"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Clarifications <span id="clar-badge" class="badge"></span
|
||||
></a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a
|
||||
class="dropdown-toggle"
|
||||
data-toggle="dropdown"
|
||||
href="#"
|
||||
role="button"
|
||||
aria-haspopup="true"
|
||||
aria-expanded="false"
|
||||
><span
|
||||
class="glyphicon glyphicon-list"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Results<span class="caret"></span
|
||||
></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="/contests/abc100/submissions"
|
||||
><span
|
||||
class="glyphicon glyphicon-globe"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
All Submissions</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contests/abc100/standings"
|
||||
><span
|
||||
class="glyphicon glyphicon-sort-by-attributes-alt"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Standings</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contests/abc100/standings/virtual"
|
||||
><span
|
||||
class="glyphicon glyphicon-sort-by-attributes-alt"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Virtual Standings</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/contests/abc100/editorial"
|
||||
><span
|
||||
class="glyphicon glyphicon-book"
|
||||
aria-hidden="true"
|
||||
></span>
|
||||
Editorial</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li class="pull-right">
|
||||
<a id="fix-cnvtb" href="javascript:void(0)"
|
||||
><span
|
||||
class="glyphicon glyphicon-pushpin"
|
||||
aria-hidden="true"
|
||||
></span
|
||||
></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<span class="h2">
|
||||
B - Ringo's Favorite Numbers
|
||||
<a
|
||||
class="btn btn-default btn-sm"
|
||||
href="/contests/abc100/tasks/abc100_b/editorial"
|
||||
>Editorial</a
|
||||
>
|
||||
</span>
|
||||
<span id="task-lang-btn" class="pull-right"
|
||||
><span data-lang="ja"
|
||||
><img src="//img.atcoder.jp/assets/top/img/flag-lang/ja.png"
|
||||
/></span>
|
||||
/
|
||||
<span data-lang="en"
|
||||
><img
|
||||
src="//img.atcoder.jp/assets/top/img/flag-lang/en.png" /></span
|
||||
></span>
|
||||
<script>
|
||||
$(function () {
|
||||
var ts = $('#task-statement span.lang')
|
||||
if (ts.children('span').size() <= 1) {
|
||||
$('#task-lang-btn').hide()
|
||||
ts.children('span').show()
|
||||
return
|
||||
}
|
||||
|
||||
var REMEMBER_LB = 5
|
||||
var LS_KEY = 'task_lang'
|
||||
var taskLang = getLS(LS_KEY) || ''
|
||||
function isTaskLangSet(taskLang) {
|
||||
return taskLang === 'ja' || taskLang === 'en'
|
||||
}
|
||||
if (isTaskLangSet(taskLang)) {
|
||||
const params = new URLSearchParams(window.location.search)
|
||||
if (params.get('lang')) {
|
||||
setLS(LS_KEY, REMEMBER_LB)
|
||||
taskLang = LANG
|
||||
}
|
||||
} else {
|
||||
taskLang = LANG
|
||||
}
|
||||
ts.children('span.lang-' + taskLang).show()
|
||||
|
||||
$('#task-lang-btn span').click(function () {
|
||||
var l = $(this).data('lang')
|
||||
ts.children('span').hide()
|
||||
ts.children('span.lang-' + l).show()
|
||||
|
||||
taskLang = getLS(LS_KEY) || ''
|
||||
let changeTimes = 0
|
||||
if (isTaskLangSet(taskLang)) {
|
||||
changeTimes = REMEMBER_LB
|
||||
} else {
|
||||
changeTimes = parseInt(taskLang, 10)
|
||||
if (isNaN(changeTimes)) changeTimes = 0
|
||||
changeTimes++
|
||||
}
|
||||
if (changeTimes < REMEMBER_LB) setLS(LS_KEY, changeTimes)
|
||||
else setLS(LS_KEY, l)
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<hr />
|
||||
<p>Time Limit: 2 sec / Memory Limit: 976 MiB</p>
|
||||
|
||||
<div id="task-statement">
|
||||
<span class="lang">
|
||||
<span class="lang-ja">
|
||||
<p>配点: <var>200</var> 点</p>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>問題文</h3>
|
||||
<p>
|
||||
今日は, 記念すべき AtCoder Beginner Contest 100
|
||||
が開催される. そのため, 高橋君はりんごさんに,
|
||||
ある整数をプレゼントしようと思った.<br />
|
||||
今日のコンテストは「AtCoder Beginner Contest
|
||||
100」なので, りんごさんは <var>100</var> で
|
||||
<strong>ちょうど</strong>
|
||||
<var>D</var>
|
||||
回割りきれる正の整数をプレゼントされると喜ぶ.
|
||||
</p>
|
||||
<p>
|
||||
さて, りんごさんがプレゼントされると喜ぶような整数のうち
|
||||
<var>N</var> 番目に小さいものを求めなさい.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>制約</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<var>D</var> は <var>0, 1, 2</var> のいずれかである
|
||||
</li>
|
||||
<li>
|
||||
<var>N</var> は <var>1</var> 以上
|
||||
<var>100</var> 以下の整数
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="io-style">
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>入力</h3>
|
||||
<p>入力は以下の形式で標準入力から与えられる.</p>
|
||||
<pre><var>D</var> <var>N</var>
|
||||
</pre>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>出力</h3>
|
||||
<p>
|
||||
<var>100</var> でちょうど
|
||||
<var>D</var> 回割りきれる正の整数の中で
|
||||
<var>N</var> 番目に小さいものを出力しなさい.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>入力例 1</h3>
|
||||
<pre>
|
||||
0 5
|
||||
</pre
|
||||
>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>出力例 1</h3>
|
||||
<pre>
|
||||
5
|
||||
</pre
|
||||
>
|
||||
|
||||
<p>
|
||||
<var>100</var> でちょうど
|
||||
<var>0</var> 回割り切れる(すなわち,
|
||||
<var>100</var> で割り切れない)整数は, <var>1</var>,
|
||||
<var>2</var>, <var>3</var>, <var>4</var>, <var>5</var>,
|
||||
<var>6</var>, <var>7</var>, ... と続く.<br />
|
||||
よって, <var>5</var> 番目に小さいりんごさんが喜ぶ整数は
|
||||
<var>5</var> である.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>入力例 2</h3>
|
||||
<pre>
|
||||
1 11
|
||||
</pre
|
||||
>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>出力例 2</h3>
|
||||
<pre>
|
||||
1100
|
||||
</pre
|
||||
>
|
||||
|
||||
<p>
|
||||
<var>100</var> でちょうど
|
||||
<var>1</var> 回割り切れる整数は, <var>100</var>,
|
||||
<var>200</var>, <var>300</var>, <var>400</var>,
|
||||
<var>500</var>, <var>600</var>, <var>700</var>,
|
||||
<var>800</var>, <var>900</var>, <var>1 \ 000</var>,
|
||||
<var>1 \ 100</var>, ... と続く.<br />
|
||||
よって, 求めたい整数は <var>1 \ 100</var> である.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>入力例 3</h3>
|
||||
<pre>
|
||||
2 85
|
||||
</pre
|
||||
>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>出力例 3</h3>
|
||||
<pre>
|
||||
850000
|
||||
</pre
|
||||
>
|
||||
|
||||
<p>
|
||||
<var>100</var> でちょうど
|
||||
<var>2</var> 回割り切れる整数は, <var>10 \ 000</var>,
|
||||
<var>20 \ 000</var>, <var>30 \ 000</var>, ... と続く.<br />
|
||||
よって, 求めたい整数は <var>850 \ 000</var> である.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
</span>
|
||||
<span class="lang-en">
|
||||
<p>Score: <var>200</var> points</p>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Problem Statement</h3>
|
||||
<p>
|
||||
Today, the memorable AtCoder Beginner Contest 100 takes
|
||||
place. On this occasion, Takahashi would like to give an
|
||||
integer to Ringo.<br />
|
||||
As the name of the contest is AtCoder Beginner Contest
|
||||
100, Ringo would be happy if he is given a positive
|
||||
integer that can be divided by <var>100</var>
|
||||
<strong>exactly</strong> <var>D</var> times.
|
||||
</p>
|
||||
<p>
|
||||
Find the <var>N</var>-th smallest integer that would
|
||||
make Ringo happy.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Constraints</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<var>D</var> is <var>0</var>, <var>1</var> or
|
||||
<var>2</var>.
|
||||
</li>
|
||||
<li>
|
||||
<var>N</var> is an integer between <var>1</var> and
|
||||
<var>100</var> (inclusive).
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="io-style">
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Input</h3>
|
||||
<p>
|
||||
Input is given from Standard Input in the following
|
||||
format:
|
||||
</p>
|
||||
<pre><var>D</var> <var>N</var>
|
||||
</pre>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Output</h3>
|
||||
<p>
|
||||
Print the <var>N</var>-th smallest integer that can be
|
||||
divided by <var>100</var> exactly <var>D</var> times.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Sample Input 1</h3>
|
||||
<pre>
|
||||
0 5
|
||||
</pre
|
||||
>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Sample Output 1</h3>
|
||||
<pre>
|
||||
5
|
||||
</pre
|
||||
>
|
||||
|
||||
<p>
|
||||
The integers that can be divided by
|
||||
<var>100</var> exactly <var>0</var> times (that is, not
|
||||
divisible by <var>100</var>) are as follows:
|
||||
<var>1</var>, <var>2</var>, <var>3</var>, <var>4</var>,
|
||||
<var>5</var>, <var>6</var>, <var>7</var>, ...<br />
|
||||
Thus, the <var>5</var>-th smallest integer that would
|
||||
make Ringo happy is <var>5</var>.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Sample Input 2</h3>
|
||||
<pre>
|
||||
1 11
|
||||
</pre
|
||||
>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Sample Output 2</h3>
|
||||
<pre>
|
||||
1100
|
||||
</pre
|
||||
>
|
||||
|
||||
<p>
|
||||
The integers that can be divided by
|
||||
<var>100</var> exactly once are as follows:
|
||||
<var>100</var>, <var>200</var>, <var>300</var>,
|
||||
<var>400</var>, <var>500</var>, <var>600</var>,
|
||||
<var>700</var>, <var>800</var>, <var>900</var>,
|
||||
<var>1 \ 000</var>, <var>1 \ 100</var>, ...<br />
|
||||
Thus, the integer we are seeking is <var>1 \ 100</var>.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Sample Input 3</h3>
|
||||
<pre>
|
||||
2 85
|
||||
</pre
|
||||
>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="part">
|
||||
<section>
|
||||
<h3>Sample Output 3</h3>
|
||||
<pre>
|
||||
850000
|
||||
</pre
|
||||
>
|
||||
|
||||
<p>
|
||||
The integers that can be divided by
|
||||
<var>100</var> exactly twice are as follows:
|
||||
<var>10 \ 000</var>, <var>20 \ 000</var>,
|
||||
<var>30 \ 000</var>, ...<br />
|
||||
Thus, the integer we are seeking is
|
||||
<var>850 \ 000</var>.
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div
|
||||
class="a2a_kit a2a_kit_size_20 a2a_default_style pull-right"
|
||||
data-a2a-url="https://atcoder.jp/contests/abc100/tasks/abc100_b?lang=en"
|
||||
data-a2a-title="B - Ringo's Favorite Numbers"
|
||||
>
|
||||
<a class="a2a_button_facebook"></a>
|
||||
<a class="a2a_button_twitter"></a>
|
||||
|
||||
<a class="a2a_button_telegram"></a>
|
||||
|
||||
<a class="a2a_dd" href="https://www.addtoany.com/share"></a>
|
||||
</div>
|
||||
|
||||
<script async src="//static.addtoany.com/menu/page.js"></script>
|
||||
</div>
|
||||
<hr />
|
||||
</div>
|
||||
|
||||
<div class="container" style="margin-bottom: 80px">
|
||||
<footer class="footer">
|
||||
<ul>
|
||||
<li><a href="/contests/abc100/rules">Rule</a></li>
|
||||
<li><a href="/contests/abc100/glossary">Glossary</a></li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><a href="/tos">Terms of service</a></li>
|
||||
<li><a href="/privacy">Privacy Policy</a></li>
|
||||
<li><a href="/personal">Information Protection Policy</a></li>
|
||||
<li><a href="/company">Company</a></li>
|
||||
<li><a href="/faq">FAQ</a></li>
|
||||
<li><a href="/contact">Contact</a></li>
|
||||
</ul>
|
||||
<div class="text-center">
|
||||
<small id="copyright"
|
||||
>Copyright Since 2012 ©<a href="http://atcoder.co.jp"
|
||||
>AtCoder Inc.</a
|
||||
>
|
||||
All rights reserved.</small
|
||||
>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
<p id="fixed-server-timer" class="contest-timer"></p>
|
||||
<div id="scroll-page-top" style="display: none">
|
||||
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span> Page
|
||||
Top
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
8210
tests/fixtures/codeforces_1550_A.html
vendored
Normal file
8210
tests/fixtures/codeforces_1550_A.html
vendored
Normal file
File diff suppressed because it is too large
Load diff
4724
tests/fixtures/codeforces_1550_B.html
vendored
Normal file
4724
tests/fixtures/codeforces_1550_B.html
vendored
Normal file
File diff suppressed because it is too large
Load diff
10
tests/fixtures/codeforces_contests.html
vendored
Normal file
10
tests/fixtures/codeforces_contests.html
vendored
Normal file
File diff suppressed because one or more lines are too long
43
tests/fixtures/cses_contests.html
vendored
Normal file
43
tests/fixtures/cses_contests.html
vendored
Normal file
File diff suppressed because one or more lines are too long
156
tests/fixtures/cses_task_1068.html
vendored
Normal file
156
tests/fixtures/cses_task_1068.html
vendored
Normal file
|
|
@ -0,0 +1,156 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||
<link rel="stylesheet " type="text/css" href="/cses.css?0" id="styles" />
|
||||
<link
|
||||
rel="stylesheet alternate"
|
||||
type="text/css"
|
||||
href="/cses-dark.css?0"
|
||||
id="styles-dark"
|
||||
/>
|
||||
<meta name="theme-color" content="white" id="theme-color" />
|
||||
<script type="application/json" id="darkmode-enabled">
|
||||
false
|
||||
</script>
|
||||
<script src="/ui.js"></script>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
href="/lib/fontawesome/css/all.min.css"
|
||||
/>
|
||||
</head>
|
||||
<body class="with-sidebar">
|
||||
<div class="header">
|
||||
<div>
|
||||
<a href="/" class="logo"><img src="/logo.png?1" alt="CSES" /></a>
|
||||
<a
|
||||
class="menu-toggle"
|
||||
onclick="document.body.classList.toggle('menu-open');"
|
||||
>
|
||||
<i class="fas fa-bars"></i>
|
||||
</a>
|
||||
<div class="controls">
|
||||
<a class="account" href="/login">Login</a>
|
||||
<span>—</span>
|
||||
<a
|
||||
href="/darkmode"
|
||||
title="Toggle dark mode"
|
||||
onclick="return toggle_theme()"
|
||||
><i aria-label="Dark mode" class="fas fa-adjust"></i
|
||||
><span>Dark mode</span></a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="skeleton">
|
||||
<div class="navigation">
|
||||
<div class="title-block">
|
||||
<h3><a href="/problemset/list/">CSES Problem Set</a></h3>
|
||||
<h1>Weird Algorithm</h1>
|
||||
<ul class="nav">
|
||||
<li><a href="/problemset/task/1068/" class="current">Task</a></li>
|
||||
<li><a href="/problemset/stats/1068/">Statistics</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<div class="content">
|
||||
<title>CSES - Weird Algorithm</title
|
||||
><link rel="stylesheet" href="/lib/katex/katex.min.css" />
|
||||
<script defer src="/lib/katex/katex.min.js"></script>
|
||||
<script defer src="/lib/katex/contrib/copy-tex.min.js"></script>
|
||||
<script
|
||||
defer
|
||||
src="/lib/google-code-prettify/run_prettify.js"
|
||||
></script>
|
||||
<script>
|
||||
addEventListener('DOMContentLoaded', function (e) {
|
||||
const mathElements = document.getElementsByClassName('math')
|
||||
const macros = {}
|
||||
for (let element of mathElements) {
|
||||
katex.render(element.textContent, element, {
|
||||
displayMode: element.classList.contains('math-display'),
|
||||
throwOnError: false,
|
||||
globalGroup: true,
|
||||
macros
|
||||
})
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<ul class="task-constraints">
|
||||
<li><b>Time limit:</b> 1.00 s</li>
|
||||
<li><b>Memory limit:</b> 512 MB</li>
|
||||
</ul>
|
||||
<div class="md">
|
||||
<p>
|
||||
Consider an algorithm that takes as input a positive integer
|
||||
<span class="math math-inline">n</span>. If
|
||||
<span class="math math-inline">n</span> is even, the algorithm
|
||||
divides it by two, and if
|
||||
<span class="math math-inline">n</span> is odd, the algorithm
|
||||
multiplies it by three and adds one. The algorithm repeats this,
|
||||
until <span class="math math-inline">n</span> is one. For example,
|
||||
the sequence for <span class="math math-inline">n=3</span> is as
|
||||
follows:
|
||||
<span class="math math-display">
|
||||
3 \rightarrow 10 \rightarrow 5 \rightarrow 16 \rightarrow 8
|
||||
\rightarrow 4 \rightarrow 2 \rightarrow 1</span
|
||||
>
|
||||
Your task is to simulate the execution of the algorithm for a
|
||||
given value of <span class="math math-inline">n</span>.
|
||||
</p>
|
||||
<h1 id="input">Input</h1>
|
||||
<p>
|
||||
The only input line contains an integer
|
||||
<span class="math math-inline">n</span>.
|
||||
</p>
|
||||
<h1 id="output">Output</h1>
|
||||
<p>
|
||||
Print a line that contains all values of
|
||||
<span class="math math-inline">n</span> during the algorithm.
|
||||
</p>
|
||||
<h1 id="constraints">Constraints</h1>
|
||||
<ul>
|
||||
<li><span class="math math-inline">1 \le n \le 10^6</span></li>
|
||||
</ul>
|
||||
<h1 id="example">Example</h1>
|
||||
<p>Input:</p>
|
||||
<pre>
|
||||
3
|
||||
</pre
|
||||
>
|
||||
<p>Output:</p>
|
||||
<pre>
|
||||
3 10 5 16 8 4 2 1
|
||||
</pre
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nav sidebar">
|
||||
<h4>Introductory Problems</h4>
|
||||
<a class="current" href="/problemset/task/1068"
|
||||
>Weird Algorithm<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1083"
|
||||
>Missing Number<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1069"
|
||||
>Repetitions<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1094"
|
||||
>Increasing Array<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1070"
|
||||
>Permutations<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1071"
|
||||
>Number Spiral<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1072"
|
||||
>Two Knights<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1092"
|
||||
>Two Sets<span class="task-score icon"></span></a
|
||||
>...
|
||||
<hr />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
150
tests/fixtures/cses_task_1621.html
vendored
Normal file
150
tests/fixtures/cses_task_1621.html
vendored
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||
<link rel="stylesheet " type="text/css" href="/cses.css?0" id="styles" />
|
||||
<link
|
||||
rel="stylesheet alternate"
|
||||
type="text/css"
|
||||
href="/cses-dark.css?0"
|
||||
id="styles-dark"
|
||||
/>
|
||||
<meta name="theme-color" content="white" id="theme-color" />
|
||||
<script type="application/json" id="darkmode-enabled">
|
||||
false
|
||||
</script>
|
||||
<script src="/ui.js"></script>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
href="/lib/fontawesome/css/all.min.css"
|
||||
/>
|
||||
</head>
|
||||
<body class="with-sidebar">
|
||||
<div class="header">
|
||||
<div>
|
||||
<a href="/" class="logo"><img src="/logo.png?1" alt="CSES" /></a>
|
||||
<a
|
||||
class="menu-toggle"
|
||||
onclick="document.body.classList.toggle('menu-open');"
|
||||
>
|
||||
<i class="fas fa-bars"></i>
|
||||
</a>
|
||||
<div class="controls">
|
||||
<a class="account" href="/login">Login</a>
|
||||
<span>—</span>
|
||||
<a
|
||||
href="/darkmode"
|
||||
title="Toggle dark mode"
|
||||
onclick="return toggle_theme()"
|
||||
><i aria-label="Dark mode" class="fas fa-adjust"></i
|
||||
><span>Dark mode</span></a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="skeleton">
|
||||
<div class="navigation">
|
||||
<div class="title-block">
|
||||
<h3><a href="/problemset/list/">CSES Problem Set</a></h3>
|
||||
<h1>Distinct Numbers</h1>
|
||||
<ul class="nav">
|
||||
<li><a href="/problemset/task/1621/" class="current">Task</a></li>
|
||||
<li><a href="/problemset/stats/1621/">Statistics</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<div class="content">
|
||||
<title>CSES - Distinct Numbers</title
|
||||
><link rel="stylesheet" href="/lib/katex/katex.min.css" />
|
||||
<script defer src="/lib/katex/katex.min.js"></script>
|
||||
<script defer src="/lib/katex/contrib/copy-tex.min.js"></script>
|
||||
<script
|
||||
defer
|
||||
src="/lib/google-code-prettify/run_prettify.js"
|
||||
></script>
|
||||
<script>
|
||||
addEventListener('DOMContentLoaded', function (e) {
|
||||
const mathElements = document.getElementsByClassName('math')
|
||||
const macros = {}
|
||||
for (let element of mathElements) {
|
||||
katex.render(element.textContent, element, {
|
||||
displayMode: element.classList.contains('math-display'),
|
||||
throwOnError: false,
|
||||
globalGroup: true,
|
||||
macros
|
||||
})
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<ul class="task-constraints">
|
||||
<li><b>Time limit:</b> 1.00 s</li>
|
||||
<li><b>Memory limit:</b> 512 MB</li>
|
||||
</ul>
|
||||
<div class="md">
|
||||
<p>
|
||||
You are given a list of
|
||||
<span class="math math-inline">n</span> integers, and your task is
|
||||
to calculate the number of <em>distinct</em> values in the list.
|
||||
</p>
|
||||
<h1 id="input">Input</h1>
|
||||
<p>
|
||||
The first input line has an integer
|
||||
<span class="math math-inline">n</span>: the number of values.
|
||||
</p>
|
||||
<p>
|
||||
The second line has
|
||||
<span class="math math-inline">n</span> integers
|
||||
<span class="math math-inline">x_1,x_2,\dots,x_n</span>.
|
||||
</p>
|
||||
<h1 id="output">Output</h1>
|
||||
<p>Print one integers: the number of distinct values.</p>
|
||||
<h1 id="constraints">Constraints</h1>
|
||||
<ul>
|
||||
<li>
|
||||
<span class="math math-inline">1 \le n \le 2 \cdot 10^5</span>
|
||||
</li>
|
||||
<li><span class="math math-inline">1 \le x_i \le 10^9</span></li>
|
||||
</ul>
|
||||
<h1 id="example">Example</h1>
|
||||
<p>Input:</p>
|
||||
<pre>
|
||||
5
|
||||
2 3 2 2 3
|
||||
</pre
|
||||
>
|
||||
<p>Output:</p>
|
||||
<pre>
|
||||
2
|
||||
</pre
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nav sidebar">
|
||||
<h4>Sorting and Searching</h4>
|
||||
<a class="current" href="/problemset/task/1621"
|
||||
>Distinct Numbers<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1084"
|
||||
>Apartments<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1090"
|
||||
>Ferris Wheel<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1091"
|
||||
>Concert Tickets<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1619"
|
||||
>Restaurant Customers<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1629"
|
||||
>Movie Festival<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1640"
|
||||
>Sum of Two Values<span class="task-score icon"></span></a
|
||||
><a href="/problemset/task/1643"
|
||||
>Maximum Subarray Sum<span class="task-score icon"></span></a
|
||||
>...
|
||||
<hr />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue