mirror of
https://gitlab.com/mfocko/Codeforces.git
synced 2024-12-22 18:21:22 +01:00
1039 lines
64 KiB
HTML
1039 lines
64 KiB
HTML
|
|
|||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
|||
|
<html lang="en">
|
|||
|
<head>
|
|||
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|||
|
<meta name="X-Csrf-Token" content="89dba27c5e1458747ad1745158d50afd"/>
|
|||
|
<meta id="viewport" name="viewport" content="width=device-width, initial-scale=0.01"/>
|
|||
|
|
|||
|
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/0/js/jquery-1.8.3.js"></script>
|
|||
|
<script type="application/javascript">
|
|||
|
window.locale = "en";
|
|||
|
window.standaloneContest = false;
|
|||
|
function adjustViewport() {
|
|||
|
var screenWidthPx = Math.min($(window).width(), window.screen.width);
|
|||
|
var siteWidthPx = 1100; // min width of site
|
|||
|
var ratio = Math.min(screenWidthPx / siteWidthPx, 1.0);
|
|||
|
var viewport = "width=device-width, initial-scale=" + ratio;
|
|||
|
$('#viewport').attr('content', viewport);
|
|||
|
var style = $('<style>html * { max-height: 1000000px; }</style>');
|
|||
|
$('html > head').append(style);
|
|||
|
}
|
|||
|
|
|||
|
if ( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
|
|||
|
adjustViewport();
|
|||
|
}
|
|||
|
|
|||
|
/* Protection against trailing dot in domain. */
|
|||
|
let hostLength = window.location.host.length;
|
|||
|
if (hostLength > 1 && window.location.host[hostLength - 1] === '.') {
|
|||
|
window.location = window.location.protocol + "//" + window.location.host.substring(0, hostLength - 1);
|
|||
|
}
|
|||
|
</script>
|
|||
|
<meta http-equiv="pragma" content="no-cache">
|
|||
|
<meta http-equiv="expires" content="-1">
|
|||
|
<meta http-equiv="profileName" content="f1">
|
|||
|
<meta name="google-site-verification" content="OTd2dN5x4nS4OPknPI9JFg36fKxjqY0i1PSfFPv_J90"/>
|
|||
|
<meta property="fb:admins" content="100001352546622" />
|
|||
|
<meta property="og:image" content="//codeforces.org/s/0/images/codeforces-sponsored-by-ton.png" />
|
|||
|
<link rel="image_src" href="//codeforces.org/s/0/images/codeforces-sponsored-by-ton.png" />
|
|||
|
<meta property="og:title" content="Problems - Codeforces"/>
|
|||
|
<meta property="og:description" content=""/>
|
|||
|
|
|||
|
<meta property="og:site_name" content="Codeforces"/>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<meta name="utc_offset" content="+03:00"/>
|
|||
|
<meta name="verify-reformal" content="f56f99fd7e087fb6ccb48ef2" />
|
|||
|
<title>Problems - Codeforces</title>
|
|||
|
<meta name="description" content="Codeforces. Programming competitions and contests, programming community" />
|
|||
|
<meta name="keywords" content="programming algorithm contest competition informatics olympiads c++ java graphs vkcup" />
|
|||
|
<meta name="robots" content="index, follow" />
|
|||
|
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/font-awesome.min.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/line-awesome.min.css" type="text/css" charset="utf-8" />
|
|||
|
|
|||
|
<link href='//fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
|
|||
|
<link href='//fonts.googleapis.com/css?family=Cuprum&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
|
|||
|
|
|||
|
|
|||
|
<link rel="apple-touch-icon" sizes="57x57" href="//codeforces.org/s/0/apple-icon-57x57.png">
|
|||
|
<link rel="apple-touch-icon" sizes="60x60" href="//codeforces.org/s/0/apple-icon-60x60.png">
|
|||
|
<link rel="apple-touch-icon" sizes="72x72" href="//codeforces.org/s/0/apple-icon-72x72.png">
|
|||
|
<link rel="apple-touch-icon" sizes="76x76" href="//codeforces.org/s/0/apple-icon-76x76.png">
|
|||
|
<link rel="apple-touch-icon" sizes="114x114" href="//codeforces.org/s/0/apple-icon-114x114.png">
|
|||
|
<link rel="apple-touch-icon" sizes="120x120" href="//codeforces.org/s/0/apple-icon-120x120.png">
|
|||
|
<link rel="apple-touch-icon" sizes="144x144" href="//codeforces.org/s/0/apple-icon-144x144.png">
|
|||
|
<link rel="apple-touch-icon" sizes="152x152" href="//codeforces.org/s/0/apple-icon-152x152.png">
|
|||
|
<link rel="apple-touch-icon" sizes="180x180" href="//codeforces.org/s/0/apple-icon-180x180.png">
|
|||
|
<link rel="icon" type="image/png" sizes="192x192" href="//codeforces.org/s/0/android-icon-192x192.png">
|
|||
|
<link rel="icon" type="image/png" sizes="32x32" href="//codeforces.org/s/0/favicon-32x32.png">
|
|||
|
<link rel="icon" type="image/png" sizes="96x96" href="//codeforces.org/s/0/favicon-96x96.png">
|
|||
|
<link rel="icon" type="image/png" sizes="16x16" href="//codeforces.org/s/0/favicon-16x16.png">
|
|||
|
<link rel="manifest" href="/manifest.json">
|
|||
|
<meta name="msapplication-TileColor" content="#ffffff">
|
|||
|
<meta name="msapplication-TileImage" content="//codeforces.org/s/0/ms-icon-144x144.png">
|
|||
|
<meta name="theme-color" content="#ffffff">
|
|||
|
|
|||
|
<!--CombineResourcesFilter-->
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/prettify.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/clear.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/style.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/ttypography.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/problem-statement.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/second-level-menu.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/roundbox.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/datatable.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/table-form.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/topic.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/jquery.jgrowl.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/facebox.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/jquery.wysiwyg.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/jquery.autocomplete.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/codeforces.datepick.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/colorbox.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/jquery.drafts.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/community.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/css/sidebar-menu.css" type="text/css" charset="utf-8" />
|
|||
|
|
|||
|
<!-- MathJax -->
|
|||
|
<script type="text/x-mathjax-config">
|
|||
|
MathJax.Hub.Config({
|
|||
|
tex2jax: {inlineMath: [['$$$','$$$']], displayMath: [['$$$$$$','$$$$$$']]}
|
|||
|
});
|
|||
|
MathJax.Hub.Register.StartupHook("End", function () {
|
|||
|
Codeforces.runMathJaxListeners();
|
|||
|
});
|
|||
|
</script>
|
|||
|
<script type="text/javascript" async
|
|||
|
src="https://cdn-mathjax.codeforces.com/MathJax.js?config=TeX-AMS_HTML-full"
|
|||
|
>
|
|||
|
</script>
|
|||
|
<!-- /MathJax -->
|
|||
|
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/prettify/prettify.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/moment-with-locales.min.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/pushstream.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/jquery.easing.min.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/jquery.lavalamp.min.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/jquery.jgrowl.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/jquery.swipe.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/jquery.hotkeys.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/facebox.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/jquery.wysiwyg.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/controls/wysiwyg.colorpicker.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/controls/wysiwyg.table.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/controls/wysiwyg.image.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/controls/wysiwyg.link.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/jquery.autocomplete.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/jquery.datepick.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/jquery.ie6blocker.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/jquery.colorbox-min.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/jquery.ba-bbq.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/jquery.drafts.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/clipboard.min.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/autosize.min.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/sjcl.js"></script>
|
|||
|
<script type="text/javascript" src="/scripts/3dccf1f9f8cb4969b151d97264ecfd48/en/codeforces-options.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/codeforces.js?v=20160131"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/EventCatcher.js?v=20160131"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/preparedVerdictFormats-en.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/js/confetti.min.js"></script>
|
|||
|
<!--/CombineResourcesFilter-->
|
|||
|
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/markitup/skins/markitup/style.css" type="text/css" charset="utf-8" />
|
|||
|
<link rel="stylesheet" href="//codeforces.org/s/19903/markitup/sets/markdown/style.css" type="text/css" charset="utf-8" />
|
|||
|
|
|||
|
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/markitup/jquery.markitup.js"></script>
|
|||
|
<script type="text/javascript" src="//codeforces.org/s/19903/markitup/sets/markdown/set.js"></script>
|
|||
|
|
|||
|
<!--[if IE]>
|
|||
|
<style>
|
|||
|
#sidebar {
|
|||
|
padding-left: 1em;
|
|||
|
margin: 1em 1em 1em 0;
|
|||
|
}
|
|||
|
</style>
|
|||
|
<![endif]-->
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</head>
|
|||
|
<body class=" "><span style='display:none;' class='csrf-token' data-csrf='89dba27c5e1458747ad1745158d50afd'> </span>
|
|||
|
|
|||
|
<!-- .notificationTextCleaner used in Codeforces.showAnnouncements() -->
|
|||
|
<div class="notificationTextCleaner" style="font-size: 0"></div>
|
|||
|
<div class="button-up" style="display: none; opacity: 0.7; width: 50px; height:100%; position: fixed; left: 0; top: 0; cursor: pointer; text-align: center; line-height: 35px; color: #d3dbe4; font-weight: bold; font-size: 3.0rem;"><i class="icon-circle-arrow-up"></i></div>
|
|||
|
<div class="verdictPrototypeDiv" style="display: none;"></div>
|
|||
|
|
|||
|
<!-- Codeforces JavaScripts. -->
|
|||
|
<script type="text/javascript">
|
|||
|
String.prototype.hashCode = function() {
|
|||
|
var hash = 0, i, chr;
|
|||
|
if (this.length === 0) return hash;
|
|||
|
for (i = 0; i < this.length; i++) {
|
|||
|
chr = this.charCodeAt(i);
|
|||
|
hash = ((hash << 5) - hash) + chr;
|
|||
|
hash |= 0; // Convert to 32bit integer
|
|||
|
}
|
|||
|
return hash;
|
|||
|
};
|
|||
|
|
|||
|
var queryMobile = Codeforces.queryString.mobile;
|
|||
|
if (queryMobile === "true" || queryMobile === "false") {
|
|||
|
Codeforces.putToStorage("useMobile", queryMobile === "true");
|
|||
|
} else {
|
|||
|
var useMobile = Codeforces.getFromStorage("useMobile");
|
|||
|
if (useMobile === true || useMobile === false) {
|
|||
|
if (useMobile != false) {
|
|||
|
Codeforces.redirect(Codeforces.updateUrlParameter(document.location.href, "mobile", useMobile));
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<script type="text/javascript">
|
|||
|
if (window.parent.frames.length > 0) {
|
|||
|
window.stop();
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<script type="text/javascript">
|
|||
|
$(document).ready(function () {
|
|||
|
(function () {
|
|||
|
jQuery.expr[':'].containsCI = function(elem, index, match) {
|
|||
|
return !match || !match.length || match.length < 4 || !match[3] || (
|
|||
|
elem.textContent || elem.innerText || jQuery(elem).text() || ''
|
|||
|
).toLowerCase().indexOf(match[3].toLowerCase()) >= 0;
|
|||
|
}
|
|||
|
}(jQuery));
|
|||
|
|
|||
|
$.ajaxPrefilter(function(options, originalOptions, xhr) {
|
|||
|
var csrf = Codeforces.getCsrfToken();
|
|||
|
|
|||
|
if (csrf) {
|
|||
|
var data = originalOptions.data;
|
|||
|
if (originalOptions.data !== undefined) {
|
|||
|
if (Object.prototype.toString.call(originalOptions.data) === '[object String]') {
|
|||
|
data = $.deparam(originalOptions.data);
|
|||
|
}
|
|||
|
} else {
|
|||
|
data = {};
|
|||
|
}
|
|||
|
options.data = $.param($.extend(data, { csrf_token: csrf }));
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
window.getCodeforcesServerTime = function(callback) {
|
|||
|
$.post("/data/time", {}, callback, "json");
|
|||
|
}
|
|||
|
|
|||
|
window.updateTypography = function () {
|
|||
|
$("div.ttypography code").addClass("tt");
|
|||
|
$("div.ttypography pre>code").addClass("prettyprint").removeClass("tt");
|
|||
|
$("div.ttypography table").addClass("bordertable");
|
|||
|
prettyPrint();
|
|||
|
}
|
|||
|
|
|||
|
$.ajaxSetup({ scriptCharset: "utf-8" ,contentType: "application/x-www-form-urlencoded; charset=UTF-8", headers: {
|
|||
|
'X-Csrf-Token': Codeforces.getCsrfToken()
|
|||
|
}});
|
|||
|
|
|||
|
window.updateTypography();
|
|||
|
|
|||
|
Codeforces.signForms();
|
|||
|
|
|||
|
setTimeout(function() {
|
|||
|
$(".second-level-menu-list").lavaLamp({
|
|||
|
fx: "backout",
|
|||
|
speed: 700
|
|||
|
});
|
|||
|
}, 100);
|
|||
|
|
|||
|
|
|||
|
Codeforces.countdown();
|
|||
|
$("a[rel='photobox']").colorbox();
|
|||
|
|
|||
|
|
|||
|
function showAnnouncements(json) {
|
|||
|
//info("j=" + JSON.stringify(json));
|
|||
|
|
|||
|
if (json.t != "a") {
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
setTimeout(function() {
|
|||
|
Codeforces.showAnnouncements(json.d, "en");
|
|||
|
}, Math.random() * 500);
|
|||
|
}
|
|||
|
|
|||
|
function showEventCatcherUserMessage(json) {
|
|||
|
if (json.t == "s") {
|
|||
|
var points = json.d[5];
|
|||
|
var passedTestCount = json.d[7];
|
|||
|
var judgedTestCount = json.d[8];
|
|||
|
var verdict = preparedVerdictFormats[json.d[12]];
|
|||
|
var verdictPrototypeDiv = $(".verdictPrototypeDiv");
|
|||
|
verdictPrototypeDiv.html(verdict);
|
|||
|
if (judgedTestCount != null && judgedTestCount != undefined) {
|
|||
|
verdictPrototypeDiv.find(".verdict-format-judged").text(judgedTestCount);
|
|||
|
}
|
|||
|
if (passedTestCount != null && passedTestCount != undefined) {
|
|||
|
verdictPrototypeDiv.find(".verdict-format-passed").text(passedTestCount);
|
|||
|
}
|
|||
|
if (points != null && points != undefined) {
|
|||
|
verdictPrototypeDiv.find(".verdict-format-points").text(points);
|
|||
|
}
|
|||
|
Codeforces.showMessage(verdictPrototypeDiv.text());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
$(".clickable-title").each(function() {
|
|||
|
var title = $(this).attr("data-title");
|
|||
|
if (title) {
|
|||
|
var tmp = document.createElement("DIV");
|
|||
|
tmp.innerHTML = title;
|
|||
|
$(this).attr("title", tmp.textContent || tmp.innerText || "");
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
$(".clickable-title").click(function() {
|
|||
|
var title = $(this).attr("data-title");
|
|||
|
if (title) {
|
|||
|
Codeforces.alert(title);
|
|||
|
} else {
|
|||
|
Codeforces.alert($(this).attr("title"));
|
|||
|
}
|
|||
|
}).css("position", "relative").css("bottom", "3px");
|
|||
|
|
|||
|
Codeforces.showDelayedMessage();
|
|||
|
|
|||
|
Codeforces.reformatTimes();
|
|||
|
|
|||
|
//Codeforces.initializePubSub();
|
|||
|
if (window.codeforcesOptions.subscribeServerUrl) {
|
|||
|
window.eventCatcher = new EventCatcher(
|
|||
|
window.codeforcesOptions.subscribeServerUrl,
|
|||
|
[
|
|||
|
Codeforces.getGlobalChannel(),
|
|||
|
Codeforces.getUserChannel(),
|
|||
|
Codeforces.getUserShowMessageChannel(),
|
|||
|
Codeforces.getContestChannel(),
|
|||
|
Codeforces.getParticipantChannel(),
|
|||
|
Codeforces.getTalkChannel()
|
|||
|
]
|
|||
|
);
|
|||
|
|
|||
|
if (Codeforces.getParticipantChannel()) {
|
|||
|
window.eventCatcher.subscribe(Codeforces.getParticipantChannel(), function(json) {
|
|||
|
showAnnouncements(json);
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
if (Codeforces.getContestChannel()) {
|
|||
|
window.eventCatcher.subscribe(Codeforces.getContestChannel(), function(json) {
|
|||
|
showAnnouncements(json);
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
if (Codeforces.getGlobalChannel()) {
|
|||
|
window.eventCatcher.subscribe(Codeforces.getGlobalChannel(), function(json) {
|
|||
|
showAnnouncements(json);
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
if (Codeforces.getUserChannel()) {
|
|||
|
window.eventCatcher.subscribe(Codeforces.getUserChannel(), function(json) {
|
|||
|
showAnnouncements(json);
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
if (Codeforces.getUserShowMessageChannel()) {
|
|||
|
window.eventCatcher.subscribe(Codeforces.getUserShowMessageChannel(), function(json) {
|
|||
|
showEventCatcherUserMessage(json);
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
Codeforces.setupContestTimes("/data/contests");
|
|||
|
Codeforces.setupSpoilers();
|
|||
|
Codeforces.setupTutorials("/data/problemTutorial");
|
|||
|
});
|
|||
|
</script>
|
|||
|
|
|||
|
<script type="text/javascript">
|
|||
|
var _gaq = _gaq || [];
|
|||
|
_gaq.push(['_setAccount', 'UA-743380-5']);
|
|||
|
_gaq.push(['_trackPageview']);
|
|||
|
|
|||
|
(function () {
|
|||
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
|||
|
ga.src = (document.location.protocol == 'https:' ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
|||
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
|||
|
})();
|
|||
|
</script>
|
|||
|
|
|||
|
|
|||
|
<div id="body">
|
|||
|
<div style="width: 950px; margin: 0 auto;" class="compact-problemset">
|
|||
|
<div id="header" style="position: relative; margin: 0;">
|
|||
|
<div style="float:left;">
|
|||
|
<div style="padding-top:1em;">
|
|||
|
<a href="//codeforces.com/vkcup2012"><img src="//stat.codeforces.com/images/vkcup2012-2.png"/>
|
|||
|
</a>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="lang">
|
|||
|
<div style="text-align: right;">
|
|||
|
<a href="?locale=en"><img src="//codeforces.org/s/34323/images/flags/24/gb.png" title="In English" alt="In English"/></a>
|
|||
|
<a href="?locale=ru"><img src="//codeforces.org/s/34323/images/flags/24/ru.png" title="По-русски" alt="По-русски"/></a>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<br style="clear: both;"/>
|
|||
|
</div>
|
|||
|
|
|||
|
<br style="clear: both;"/>
|
|||
|
|
|||
|
<div style="text-align: center; font-size: 1.8rem; margin-bottom: 0.5em;"
|
|||
|
class="caption">VK Cup 2012 Qualification Round 1</div>
|
|||
|
<div style="border-top: 1px solid #ccc; height: 1em;"></div>
|
|||
|
|
|||
|
<div class="problem-frames">
|
|||
|
<div
|
|||
|
style="margin-bottom: 2em;"
|
|||
|
>
|
|||
|
|
|||
|
<style>
|
|||
|
#facebox .content:has(.diff-popup) {
|
|||
|
width: 90vw;
|
|||
|
max-width: 120rem !important;
|
|||
|
}
|
|||
|
|
|||
|
.testCaseMarker {
|
|||
|
position: absolute;
|
|||
|
font-weight: bold;
|
|||
|
font-size: 1rem;
|
|||
|
}
|
|||
|
|
|||
|
.diff-popup {
|
|||
|
width: 90vw;
|
|||
|
max-width: 120rem !important;
|
|||
|
display: none;
|
|||
|
overflow: auto;
|
|||
|
}
|
|||
|
|
|||
|
.input-output-copier {
|
|||
|
font-size: 1.2rem;
|
|||
|
float: right;
|
|||
|
color: #888 !important;
|
|||
|
cursor: pointer;
|
|||
|
border: 1px solid rgb(185, 185, 185);
|
|||
|
padding: 3px;
|
|||
|
margin: 1px;
|
|||
|
line-height: 1.1rem;
|
|||
|
text-transform: none;
|
|||
|
}
|
|||
|
|
|||
|
.input-output-copier:hover {
|
|||
|
background-color: #def;
|
|||
|
}
|
|||
|
|
|||
|
.test-explanation textarea {
|
|||
|
width: 100%;
|
|||
|
height: 1.5em;
|
|||
|
}
|
|||
|
|
|||
|
.pending-submission-message {
|
|||
|
color: darkorange !important;
|
|||
|
}
|
|||
|
</style>
|
|||
|
<script>
|
|||
|
const OPENING_SPACE = String.fromCharCode(1001);
|
|||
|
const CLOSING_SPACE = String.fromCharCode(1002);
|
|||
|
|
|||
|
const nodeToText = function (node, pre) {
|
|||
|
let result = [];
|
|||
|
|
|||
|
if (node.tagName === "SCRIPT" || node.tagName === "math"
|
|||
|
|| (node.classList && node.classList.contains("input-output-copier")))
|
|||
|
return [];
|
|||
|
|
|||
|
if (node.tagName === "NOBR") {
|
|||
|
result.push(OPENING_SPACE);
|
|||
|
}
|
|||
|
|
|||
|
if (node.nodeType === Node.TEXT_NODE) {
|
|||
|
let s = node.textContent;
|
|||
|
if (!pre) {
|
|||
|
s = s.replace(/\s+/g, " ");
|
|||
|
}
|
|||
|
if (s.length > 0) {
|
|||
|
result.push(s);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (pre && node.tagName === "BR") {
|
|||
|
result.push("\n");
|
|||
|
}
|
|||
|
|
|||
|
node.childNodes.forEach(function (child) {
|
|||
|
result.push(nodeToText(child, node.tagName === "PRE").join(""));
|
|||
|
});
|
|||
|
|
|||
|
if (node.tagName === "DIV"
|
|||
|
|| node.tagName === "P"
|
|||
|
|| node.tagName === "PRE"
|
|||
|
|| node.tagName === "UL"
|
|||
|
|| node.tagName === "LI"
|
|||
|
) {
|
|||
|
result.push("\n");
|
|||
|
}
|
|||
|
|
|||
|
if (node.tagName === "NOBR") {
|
|||
|
result.push(CLOSING_SPACE);
|
|||
|
}
|
|||
|
|
|||
|
return result;
|
|||
|
}
|
|||
|
|
|||
|
const isSpecial = function (c) {
|
|||
|
return c === ',' || c === '.' || c === ';' || c === ')' || c === ' ';
|
|||
|
}
|
|||
|
|
|||
|
const convertStatementToText = function(statmentNode) {
|
|||
|
const text = nodeToText(statmentNode, false).join("").replace(/ +/g, " ").replace(/\n\n+/g, "\n\n");
|
|||
|
let result = [];
|
|||
|
for (let i = 0; i < text.length; i++) {
|
|||
|
const c = text.charAt(i);
|
|||
|
if (c === OPENING_SPACE) {
|
|||
|
if (!((i > 0 && text.charAt(i - 1) === '(') || (result.length > 0 && result[result.length - 1] === ' '))) {
|
|||
|
result.push('+');
|
|||
|
}
|
|||
|
} else if (c === CLOSING_SPACE) {
|
|||
|
if (!(i + 1 < text.length && isSpecial(text.charAt(i + 1)))) {
|
|||
|
result.push('-');
|
|||
|
}
|
|||
|
} else {
|
|||
|
result.push(c);
|
|||
|
}
|
|||
|
}
|
|||
|
return result.join("").split("\n").map(value => value.trim()).join("\n");
|
|||
|
};
|
|||
|
</script>
|
|||
|
<div class="diff-popup">
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="problemindexholder" problemindex="A" data-uuid="ps_4cb6aaf6d06268a460b147f44a45efa3022052f4">
|
|||
|
<div style="display: none; margin:1em 0;text-align: center; position: relative;" class="alert alert-info diff-notifier">
|
|||
|
<div>The problem statement has recently been changed. <a class="view-changes" href="#">View the changes.</a></div>
|
|||
|
<span class="diff-notifier-close" style="position: absolute; top: 0.2em; right: 0.3em; cursor: pointer; font-size: 1.4em;">×</span>
|
|||
|
</div>
|
|||
|
<div class="ttypography"><div class="problem-statement"><div class="header"><div class="title">A. Next Round</div><div class="time-limit"><div class="property-title">time limit per test</div>3 seconds</div><div class="memory-limit"><div class="property-title">memory limit per test</div>256 megabytes</div><div class="input-file"><div class="property-title">input</div>standard input</div><div class="output-file"><div class="property-title">output</div>standard output</div></div><div><p>"Contestant who earns a score equal to or greater than the <span class="tex-span"><i>k</i></span>-th place finisher's score will advance to the next round, as long as the contestant earns a positive score..." — an excerpt from contest rules.</p><p>A total of <span class="tex-span"><i>n</i></span> participants took part in the contest (<span class="tex-span"><i>n</i> ≥ <i>k</i></span>), and you already know their scores. Calculate how many participants will advance to the next round.</p></div><div class="input-specification"><div class="section-title">Input</div><p>The first line of the input contains two integers <span class="tex-span"><i>n</i></span> and <span class="tex-span"><i>k</i></span> (<span class="tex-span">1 ≤ <i>k</i> ≤ <i>n</i> ≤ 50</span>) separated by a single space.</p><p>The second line contains <span class="tex-span"><i>n</i></span> space-separated integers <span class="tex-span"><i>a</i><sub class="lower-index">1</sub>, <i>a</i><sub class="lower-index">2</sub>, ..., <i>a</i><sub class="lower-index"><i>n</i></sub></span> (<span class="tex-span">0 ≤ <i>a</i><sub class="lower-index"><i>i</i></sub> ≤ 100</span>), where <span class="tex-span"><i>a</i><sub class="lower-index"><i>i</i></sub></span> is the score earned by the participant who got the <span class="tex-span"><i>i</i></span>-th place. The given sequence is non-increasing (that is, for all <span class="tex-span"><i>i</i></span> from <span class="tex-span">1</span> to <span class="tex-span"><i>n</i> - 1</span> the following condition is fulfilled: <span class="tex-span"><i>a</i><sub class="lower-index"><i>i</i></sub> ≥ <i>a</i><sub class="lower-index"><i>i</i> + 1</sub></span>).</p></div><div class="output-specification"><div class="section-title">Output</div><p>Output the number of participants who advance to the next round.</p></div><div class="sample-tests"><div class="section-title">Examples</div><div class="sample-test"><div class="input"><div class="title">Input</div><pre>8 5<br />10 9 8 7 7 7 5 5<br /></pre></div><div class="output"><div class="title">Output</div><pre>6<br /></pre></div><div class="input"><div class="title">Input</div><pre>4 2<br />0 0 0 0<br /></pre></div><div class="output"><div class="title">Output</div><pre>0<br /></pre></div></div></div><div class="note"><div class="section-title">Note</div><p>In the first example the participant on the 5th place earned 7 points. As the participant on the 6th place also earned 7 points, there are 6 advancers.</p><p>In the second example nobody got a positive score.</p></div></div></div>
|
|||
|
</div>
|
|||
|
|
|||
|
<script>
|
|||
|
$(function () {
|
|||
|
Codeforces.addMathJaxListener(function () {
|
|||
|
let $problem = $("div[problemindex=A]");
|
|||
|
let uuid = $problem.attr("data-uuid");
|
|||
|
let statementText = convertStatementToText($problem.find(".ttypography").get(0));
|
|||
|
|
|||
|
let previousStatementText = Codeforces.getFromStorage(uuid);
|
|||
|
if (previousStatementText) {
|
|||
|
if (previousStatementText !== statementText) {
|
|||
|
$problem.find(".diff-notifier").show();
|
|||
|
|
|||
|
$problem.find(".diff-notifier-close").click(function() {
|
|||
|
Codeforces.putToStorageTtl(uuid, statementText, 6 * 60 * 60);
|
|||
|
$problem.find(".diff-notifier").hide();
|
|||
|
});
|
|||
|
|
|||
|
$problem.find("a.view-changes").click(function() {
|
|||
|
$.post("/data/diff", {action: "getDiff", a: previousStatementText, b: statementText}, function (result) {
|
|||
|
if (result["success"] === "true") {
|
|||
|
Codeforces.facebox(".diff-popup", "//codeforces.org/s/34323");
|
|||
|
$("#facebox .diff-popup").html(result["diff"]);
|
|||
|
}
|
|||
|
}, "json");
|
|||
|
});
|
|||
|
}
|
|||
|
} else {
|
|||
|
Codeforces.putToStorageTtl(uuid, statementText, 6 * 60 * 60);
|
|||
|
}
|
|||
|
});
|
|||
|
});
|
|||
|
</script>
|
|||
|
|
|||
|
|
|||
|
<script type="text/javascript">
|
|||
|
$(document).ready(function () {
|
|||
|
window.changedTests = new Set();
|
|||
|
|
|||
|
function endsWith(string, suffix) {
|
|||
|
return string.indexOf(suffix, string.length - suffix.length) !== -1;
|
|||
|
}
|
|||
|
|
|||
|
const inputFileDiv = $("div.input-file");
|
|||
|
const inputFile = inputFileDiv.text();
|
|||
|
const outputFileDiv = $("div.output-file");
|
|||
|
const outputFile = outputFileDiv.text();
|
|||
|
|
|||
|
|
|||
|
if (!endsWith(inputFile, "standard input")
|
|||
|
&& !endsWith(inputFile, "standard input")) {
|
|||
|
inputFileDiv.attr("style", "font-weight: bold");
|
|||
|
}
|
|||
|
|
|||
|
if (!endsWith(outputFile, "standard output")
|
|||
|
&& !endsWith(outputFile, "standard output")) {
|
|||
|
outputFileDiv.attr("style", "font-weight: bold");
|
|||
|
}
|
|||
|
|
|||
|
const titleDiv = $("div.header div.title");
|
|||
|
|
|||
|
|
|||
|
|
|||
|
String.prototype.replaceAll = function (search, replace) {
|
|||
|
return this.split(search).join(replace);
|
|||
|
};
|
|||
|
|
|||
|
$(".sample-test .title").each(function () {
|
|||
|
const preId = ("id" + Math.random()).replaceAll(".", "0");
|
|||
|
const cpyId = ("id" + Math.random()).replaceAll(".", "0");
|
|||
|
|
|||
|
$(this).parent().find("pre").attr("id", preId);
|
|||
|
const $copy = $("<div title='Copy' data-clipboard-target='#" + preId + "' id='" + cpyId + "' class='input-output-copier'>Copy</div>");
|
|||
|
$(this).append($copy);
|
|||
|
|
|||
|
const clipboard = new Clipboard('#' + cpyId, {
|
|||
|
text: function (trigger) {
|
|||
|
const pre = document.querySelector('#' + preId);
|
|||
|
const lines = pre.querySelectorAll(".test-example-line");
|
|||
|
return Codeforces.filterClipboardText(pre.innerText, lines.length);
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
const isInput = $(this).parent().hasClass("input");
|
|||
|
|
|||
|
clipboard.on('success', function (e) {
|
|||
|
if (isInput) {
|
|||
|
Codeforces.showMessage("The example input has been copied into the clipboard");
|
|||
|
} else {
|
|||
|
Codeforces.showMessage("The example output has been copied into the clipboard");
|
|||
|
}
|
|||
|
e.clearSelection();
|
|||
|
});
|
|||
|
});
|
|||
|
|
|||
|
$(".test-form-item input").change(function () {
|
|||
|
addPendingSubmissionMessage($($(this).closest("form")), "You changed the answer, do not forget to submit it if you want to save the changes");
|
|||
|
const index = $(this).closest(".problemindexholder").attr("problemindex");
|
|||
|
let test = "";
|
|||
|
$(this).closest("form input").each(function () {
|
|||
|
const test_ = $(this).attr("name");
|
|||
|
if (test_ && test_.substring(0, 4) === "test") {
|
|||
|
test = test_;
|
|||
|
}
|
|||
|
});
|
|||
|
if (index.length > 0 && test.length > 0) {
|
|||
|
const indexTest = index + "::" + test;
|
|||
|
window.changedTests.add(indexTest);
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
$(window).on('beforeunload', function () {
|
|||
|
if (window.changedTests.size > 0) {
|
|||
|
return 'Dialog text here';
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
autosize($('.test-explanation textarea'));
|
|||
|
|
|||
|
$(".test-example-line").hover(function() {
|
|||
|
$(this).attr("class").split(" ").forEach((clazz) => {
|
|||
|
if (clazz.substr(0, "test-example-line-".length) === "test-example-line-") {
|
|||
|
let end = clazz.substr("test-example-line-".length);
|
|||
|
if (end !== "even" && end !== "odd" && end !== "0") {
|
|||
|
let top = 1E20;
|
|||
|
let left = 1E20;
|
|||
|
let problem = $(this).closest(".problemindexholder");
|
|||
|
$(this).closest(".input").find("." + clazz).css("background-color", "#FFFDE7").each(function() {
|
|||
|
top = Math.min(top, $(this).offset().top);
|
|||
|
left = Math.min(left, $(this).offset().left);
|
|||
|
});
|
|||
|
let testCaseMarker = problem.find(".testCaseMarker_" + end);
|
|||
|
if (testCaseMarker.length === 0) {
|
|||
|
const html = "<div class=\"testCaseMarker testCaseMarker_" + end + " notice\"></div>";
|
|||
|
problem.append($(html));
|
|||
|
testCaseMarker = problem.find(".testCaseMarker_" + end);
|
|||
|
}
|
|||
|
if (testCaseMarker) {
|
|||
|
testCaseMarker.show()
|
|||
|
.offset({top, left: left - 20})
|
|||
|
.text(end);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
}, function() {
|
|||
|
$(this).attr("class").split(" ").forEach((clazz) => {
|
|||
|
if (clazz.substr(0, "test-example-line-".length) === "test-example-line-") {
|
|||
|
let end = clazz.substr("test-example-line-".length);
|
|||
|
if (end !== "even" && end !== "odd" && end !== "0") {
|
|||
|
$("." + clazz).css("background-color", "");
|
|||
|
$(this).closest(".problemindexholder").find(".testCaseMarker_" + end).hide();
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
});
|
|||
|
|
|||
|
});
|
|||
|
</script>
|
|||
|
</div>
|
|||
|
<div
|
|||
|
style="margin-bottom: 2em;"
|
|||
|
>
|
|||
|
|
|||
|
|
|||
|
<div class="problemindexholder" problemindex="B" data-uuid="ps_a4d4820681351086f930c9b79bc4e35265e5353d">
|
|||
|
<div style="display: none; margin:1em 0;text-align: center; position: relative;" class="alert alert-info diff-notifier">
|
|||
|
<div>The problem statement has recently been changed. <a class="view-changes" href="#">View the changes.</a></div>
|
|||
|
<span class="diff-notifier-close" style="position: absolute; top: 0.2em; right: 0.3em; cursor: pointer; font-size: 1.4em;">×</span>
|
|||
|
</div>
|
|||
|
<div class="ttypography"><div class="problem-statement"><div class="header"><div class="title">B. Taxi</div><div class="time-limit"><div class="property-title">time limit per test</div>3 seconds</div><div class="memory-limit"><div class="property-title">memory limit per test</div>256 megabytes</div><div class="input-file"><div class="property-title">input</div>standard input</div><div class="output-file"><div class="property-title">output</div>standard output</div></div><div><p>After the lessons <span class="tex-span"><i>n</i></span> groups of schoolchildren went outside and decided to visit Polycarpus to celebrate his birthday. We know that the <span class="tex-span"><i>i</i></span>-th group consists of <span class="tex-span"><i>s</i><sub class="lower-index"><i>i</i></sub></span> friends (<span class="tex-span">1 ≤ <i>s</i><sub class="lower-index"><i>i</i></sub> ≤ 4</span>), and they want to go to Polycarpus together. They decided to get there by taxi. Each car can carry at most four passengers. What minimum number of cars will the children need if all members of each group should ride in the same taxi (but one taxi can take more than one group)?</p></div><div class="input-specification"><div class="section-title">Input</div><p>The first line contains integer <span class="tex-span"><i>n</i></span> (<span class="tex-span">1 ≤ <i>n</i> ≤ 10<sup class="upper-index">5</sup></span>) — the number of groups of schoolchildren. The second line contains a sequence of integers <span class="tex-span"><i>s</i><sub class="lower-index">1</sub>, <i>s</i><sub class="lower-index">2</sub>, ..., <i>s</i><sub class="lower-index"><i>n</i></sub></span> (<span class="tex-span">1 ≤ <i>s</i><sub class="lower-index"><i>i</i></sub> ≤ 4</span>). The integers are separated by a space, <span class="tex-span"><i>s</i><sub class="lower-index"><i>i</i></sub></span> is the number of children in the <span class="tex-span"><i>i</i></span>-th group.</p></div><div class="output-specification"><div class="section-title">Output</div><p>Print the single number — the minimum number of taxis necessary to drive all children to Polycarpus.</p></div><div class="sample-tests"><div class="section-title">Examples</div><div class="sample-test"><div class="input"><div class="title">Input</div><pre>5<br />1 2 4 3 3<br /></pre></div><div class="output"><div class="title">Output</div><pre>4<br /></pre></div><div class="input"><div class="title">Input</div><pre>8<br />2 3 4 4 2 1 3 1<br /></pre></div><div class="output"><div class="title">Output</div><pre>5<br /></pre></div></div></div><div class="note"><div class="section-title">Note</div><p>In the first test we can sort the children into four cars like this:</p><ul> <li> the third group (consisting of four children), </li><li> the fourth group (consisting of three children), </li><li> the fifth group (consisting of three children), </li><li> the first and the second group (consisting of one and two children, correspondingly). </li></ul><p>There are other ways to sort the groups into four cars.</p></div></div></div>
|
|||
|
</div>
|
|||
|
|
|||
|
<script>
|
|||
|
$(function () {
|
|||
|
Codeforces.addMathJaxListener(function () {
|
|||
|
let $problem = $("div[problemindex=B]");
|
|||
|
let uuid = $problem.attr("data-uuid");
|
|||
|
let statementText = convertStatementToText($problem.find(".ttypography").get(0));
|
|||
|
|
|||
|
let previousStatementText = Codeforces.getFromStorage(uuid);
|
|||
|
if (previousStatementText) {
|
|||
|
if (previousStatementText !== statementText) {
|
|||
|
$problem.find(".diff-notifier").show();
|
|||
|
|
|||
|
$problem.find(".diff-notifier-close").click(function() {
|
|||
|
Codeforces.putToStorageTtl(uuid, statementText, 6 * 60 * 60);
|
|||
|
$problem.find(".diff-notifier").hide();
|
|||
|
});
|
|||
|
|
|||
|
$problem.find("a.view-changes").click(function() {
|
|||
|
$.post("/data/diff", {action: "getDiff", a: previousStatementText, b: statementText}, function (result) {
|
|||
|
if (result["success"] === "true") {
|
|||
|
Codeforces.facebox(".diff-popup", "//codeforces.org/s/34323");
|
|||
|
$("#facebox .diff-popup").html(result["diff"]);
|
|||
|
}
|
|||
|
}, "json");
|
|||
|
});
|
|||
|
}
|
|||
|
} else {
|
|||
|
Codeforces.putToStorageTtl(uuid, statementText, 6 * 60 * 60);
|
|||
|
}
|
|||
|
});
|
|||
|
});
|
|||
|
</script>
|
|||
|
|
|||
|
|
|||
|
<script type="text/javascript">
|
|||
|
$(document).ready(function () {
|
|||
|
|
|||
|
function endsWith(string, suffix) {
|
|||
|
return string.indexOf(suffix, string.length - suffix.length) !== -1;
|
|||
|
}
|
|||
|
|
|||
|
const inputFileDiv = $("div.input-file");
|
|||
|
const inputFile = inputFileDiv.text();
|
|||
|
const outputFileDiv = $("div.output-file");
|
|||
|
const outputFile = outputFileDiv.text();
|
|||
|
|
|||
|
|
|||
|
if (!endsWith(inputFile, "standard input")
|
|||
|
&& !endsWith(inputFile, "standard input")) {
|
|||
|
inputFileDiv.attr("style", "font-weight: bold");
|
|||
|
}
|
|||
|
|
|||
|
if (!endsWith(outputFile, "standard output")
|
|||
|
&& !endsWith(outputFile, "standard output")) {
|
|||
|
outputFileDiv.attr("style", "font-weight: bold");
|
|||
|
}
|
|||
|
|
|||
|
const titleDiv = $("div.header div.title");
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
});
|
|||
|
</script>
|
|||
|
</div>
|
|||
|
<div
|
|||
|
style="margin-bottom: 2em;"
|
|||
|
>
|
|||
|
|
|||
|
|
|||
|
<div class="problemindexholder" problemindex="C" data-uuid="ps_1bc099f652a958e64f535159d083f605a2b5b8d9">
|
|||
|
<div style="display: none; margin:1em 0;text-align: center; position: relative;" class="alert alert-info diff-notifier">
|
|||
|
<div>The problem statement has recently been changed. <a class="view-changes" href="#">View the changes.</a></div>
|
|||
|
<span class="diff-notifier-close" style="position: absolute; top: 0.2em; right: 0.3em; cursor: pointer; font-size: 1.4em;">×</span>
|
|||
|
</div>
|
|||
|
<div class="ttypography"><div class="problem-statement"><div class="header"><div class="title">C. Cd and pwd commands</div><div class="time-limit"><div class="property-title">time limit per test</div>3 seconds</div><div class="memory-limit"><div class="property-title">memory limit per test</div>256 megabytes</div><div class="input-file"><div class="property-title">input</div>standard input</div><div class="output-file"><div class="property-title">output</div>standard output</div></div><div><p>Vasya is writing an operating system shell, and it should have commands for working with directories. To begin with, he decided to go with just two commands: <span class="tex-font-style-tt">cd</span> (change the current directory) and <span class="tex-font-style-tt">pwd</span> (display the current directory).</p><p>Directories in Vasya's operating system form a traditional hierarchical tree structure. There is a single root directory, denoted by the slash character "<span class="tex-font-style-tt">/</span>". Every other directory has a name — a non-empty string consisting of lowercase Latin letters. Each directory (except for the root) has a parent directory — the one that contains the given directory. It is denoted as "<span class="tex-font-style-tt">..</span>".</p><p>The command <span class="tex-font-style-tt">cd</span> takes a single parameter, which is a path in the file system. The command changes the current directory to the directory specified by the path. The path consists of the names of directories separated by slashes. The name of the directory can be "<span class="tex-font-style-tt">..</span>", which means a step up to the parent directory. «<span class="tex-font-style-tt">..</span>» can be used in any place of the path, maybe several times. If the path begins with a slash, it is considered to be an absolute path, that is, the directory changes to the specified one, starting from the root. If the parameter begins with a directory name (or "<span class="tex-font-style-tt">..</span>"), it is considered to be a relative path, that is, the directory changes to the specified directory, starting from the current one.</p><p>The command <span class="tex-font-style-tt">pwd</span> should display the absolute path to the current directory. This path must not contain "<span class="tex-font-style-tt">..</span>".</p><p>Initially, the current directory is the root. All directories mentioned explicitly or passed indirectly within any command <span class="tex-font-style-tt">cd</span> are considered to exist. It is guaranteed that there is no attempt of transition to the parent directory of the root directory.</p></div><div class="input-specification"><div class="section-title">Input</div><p>The first line of the input data contains the single integer <span class="tex-span"><i>n</i></span> (<span class="tex-span">1 ≤ <i>n</i> ≤ 50</span>) — the number of commands.</p><p>Then follow <span class="tex-span"><i>n</i></span> lines, each contains one command. Each of these lines contains either command <span class="tex-font-style-tt">pwd</span>, or command <span class="tex-font-style-tt">cd</span>, followed by a space-separated non-empty parameter.</p><p>The command parameter <span class="tex-font-style-tt">cd</span> only contains lower case Latin letters, slashes and dots, two slashes cannot go consecutively, dots occur only as the name of a parent pseudo-directory. The command parameter <span class="tex-font-style-tt">cd</span> does not end with a slash, except when it is the only symbol that points to the root directory. The command parameter has a length from 1 to 200 characters, inclusive.</p><p>Directories in the file system can have the same names.</p></div><div class="output-specification"><div class="section-title">Output</div><p>For each command <span class="tex-font-style-tt">pwd</span> you should print the full absolute path of the given directory, ending with a slash. It should start with a slash and contain the list of slash-separated directories in the
|
|||
|
</div>
|
|||
|
|
|||
|
<script>
|
|||
|
$(function () {
|
|||
|
Codeforces.addMathJaxListener(function () {
|
|||
|
let $problem = $("div[problemindex=C]");
|
|||
|
let uuid = $problem.attr("data-uuid");
|
|||
|
let statementText = convertStatementToText($problem.find(".ttypography").get(0));
|
|||
|
|
|||
|
let previousStatementText = Codeforces.getFromStorage(uuid);
|
|||
|
if (previousStatementText) {
|
|||
|
if (previousStatementText !== statementText) {
|
|||
|
$problem.find(".diff-notifier").show();
|
|||
|
|
|||
|
$problem.find(".diff-notifier-close").click(function() {
|
|||
|
Codeforces.putToStorageTtl(uuid, statementText, 6 * 60 * 60);
|
|||
|
$problem.find(".diff-notifier").hide();
|
|||
|
});
|
|||
|
|
|||
|
$problem.find("a.view-changes").click(function() {
|
|||
|
$.post("/data/diff", {action: "getDiff", a: previousStatementText, b: statementText}, function (result) {
|
|||
|
if (result["success"] === "true") {
|
|||
|
Codeforces.facebox(".diff-popup", "//codeforces.org/s/34323");
|
|||
|
$("#facebox .diff-popup").html(result["diff"]);
|
|||
|
}
|
|||
|
}, "json");
|
|||
|
});
|
|||
|
}
|
|||
|
} else {
|
|||
|
Codeforces.putToStorageTtl(uuid, statementText, 6 * 60 * 60);
|
|||
|
}
|
|||
|
});
|
|||
|
});
|
|||
|
</script>
|
|||
|
|
|||
|
|
|||
|
<script type="text/javascript">
|
|||
|
$(document).ready(function () {
|
|||
|
|
|||
|
function endsWith(string, suffix) {
|
|||
|
return string.indexOf(suffix, string.length - suffix.length) !== -1;
|
|||
|
}
|
|||
|
|
|||
|
const inputFileDiv = $("div.input-file");
|
|||
|
const inputFile = inputFileDiv.text();
|
|||
|
const outputFileDiv = $("div.output-file");
|
|||
|
const outputFile = outputFileDiv.text();
|
|||
|
|
|||
|
|
|||
|
if (!endsWith(inputFile, "standard input")
|
|||
|
&& !endsWith(inputFile, "standard input")) {
|
|||
|
inputFileDiv.attr("style", "font-weight: bold");
|
|||
|
}
|
|||
|
|
|||
|
if (!endsWith(outputFile, "standard output")
|
|||
|
&& !endsWith(outputFile, "standard output")) {
|
|||
|
outputFileDiv.attr("style", "font-weight: bold");
|
|||
|
}
|
|||
|
|
|||
|
const titleDiv = $("div.header div.title");
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
});
|
|||
|
</script>
|
|||
|
</div>
|
|||
|
<div
|
|||
|
style="margin-bottom: 2em;"
|
|||
|
>
|
|||
|
|
|||
|
|
|||
|
<div class="problemindexholder" problemindex="D" data-uuid="ps_cf20e012bd44fb4e6825b52da19392b96be0f9b8">
|
|||
|
<div style="display: none; margin:1em 0;text-align: center; position: relative;" class="alert alert-info diff-notifier">
|
|||
|
<div>The problem statement has recently been changed. <a class="view-changes" href="#">View the changes.</a></div>
|
|||
|
<span class="diff-notifier-close" style="position: absolute; top: 0.2em; right: 0.3em; cursor: pointer; font-size: 1.4em;">×</span>
|
|||
|
</div>
|
|||
|
<div class="ttypography"><div class="problem-statement"><div class="header"><div class="title">D. Ice Sculptures</div><div class="time-limit"><div class="property-title">time limit per test</div>3 seconds</div><div class="memory-limit"><div class="property-title">memory limit per test</div>256 megabytes</div><div class="input-file"><div class="property-title">input</div>standard input</div><div class="output-file"><div class="property-title">output</div>standard output</div></div><div><p>The Berland University is preparing to celebrate the 256-th anniversary of its founding! A specially appointed Vice Rector for the celebration prepares to decorate the campus. In the center of the campus <span class="tex-span"><i>n</i></span> ice sculptures were erected. The sculptures are arranged in a circle at equal distances from each other, so they form a regular <span class="tex-span"><i>n</i></span>-gon. They are numbered in clockwise order with numbers from 1 to <span class="tex-span"><i>n</i></span>.</p><p>The site of the University has already conducted a voting that estimated each sculpture's characteristic of <span class="tex-span"><i>t</i><sub class="lower-index"><i>i</i></sub></span> — the degree of the sculpture's attractiveness. The values of <span class="tex-span"><i>t</i><sub class="lower-index"><i>i</i></sub></span> can be positive, negative or zero.</p><p>When the university rector came to evaluate the work, he said that this might be not the perfect arrangement. He suggested to melt some of the sculptures so that: </p><ul> <li> the remaining sculptures form a regular polygon (the number of vertices should be between 3 and <span class="tex-span"><i>n</i></span>), </li><li> the sum of the <span class="tex-span"><i>t</i><sub class="lower-index"><i>i</i></sub></span> values of the remaining sculptures is maximized. </li></ul><p>Help the Vice Rector to analyze the criticism — find the maximum value of <span class="tex-span"><i>t</i><sub class="lower-index"><i>i</i></sub></span> sum which can be obtained in this way. It is allowed not to melt any sculptures at all. The sculptures can not be moved.</p></div><div class="input-specification"><div class="section-title">Input</div><p>The first input line contains an integer <span class="tex-span"><i>n</i></span> (<span class="tex-span">3 ≤ <i>n</i> ≤ 20000</span>) — the initial number of sculptures. The second line contains a sequence of integers <span class="tex-span"><i>t</i><sub class="lower-index">1</sub>, <i>t</i><sub class="lower-index">2</sub>, ..., <i>t</i><sub class="lower-index"><i>n</i></sub></span>, <span class="tex-span"><i>t</i><sub class="lower-index"><i>i</i></sub></span> — the degree of the <span class="tex-span"><i>i</i></span>-th sculpture's attractiveness (<span class="tex-span"> - 1000 ≤ <i>t</i><sub class="lower-index"><i>i</i></sub> ≤ 1000</span>). The numbers on the line are separated by spaces.</p></div><div class="output-specification"><div class="section-title">Output</div><p>Print the required maximum sum of the sculptures' attractiveness.</p></div><div class="sample-tests"><div class="section-title">Examples</div><div class="sample-test"><div class="input"><div class="title">Input</div><pre>8<br />1 2 -3 4 -5 5 2 3<br /></pre></div><div class="output"><div class="title">Output</div><pre>14<br /></pre></div><div class="input"><div class="title">Input</div><pre>6<br />1 -2 3 -4 5 -6<br /></pre></div><div class="output"><div class="title">Output</div><pre>9<br /></pre></div><div class="input"><div class="title">Input</div><pre>6<br />1 2 3 4 5 6<br /></pre></div><div class="output"><div class="title">Output</div><pre>21<br /></pre></div></div></div><div class="note"><div class="section-title">Note</div><p>In the first sample it is best to leave every second sculpture, that is, leave sculptures with attractivenesses: 2, 4, 5 и 3.</p></div></div></div>
|
|||
|
</div>
|
|||
|
|
|||
|
<script>
|
|||
|
$(function () {
|
|||
|
Codeforces.addMathJaxListener(function () {
|
|||
|
let $problem = $("div[problemindex=D]");
|
|||
|
let uuid = $problem.attr("data-uuid");
|
|||
|
let statementText = convertStatementToText($problem.find(".ttypography").get(0));
|
|||
|
|
|||
|
let previousStatementText = Codeforces.getFromStorage(uuid);
|
|||
|
if (previousStatementText) {
|
|||
|
if (previousStatementText !== statementText) {
|
|||
|
$problem.find(".diff-notifier").show();
|
|||
|
|
|||
|
$problem.find(".diff-notifier-close").click(function() {
|
|||
|
Codeforces.putToStorageTtl(uuid, statementText, 6 * 60 * 60);
|
|||
|
$problem.find(".diff-notifier").hide();
|
|||
|
});
|
|||
|
|
|||
|
$problem.find("a.view-changes").click(function() {
|
|||
|
$.post("/data/diff", {action: "getDiff", a: previousStatementText, b: statementText}, function (result) {
|
|||
|
if (result["success"] === "true") {
|
|||
|
Codeforces.facebox(".diff-popup", "//codeforces.org/s/34323");
|
|||
|
$("#facebox .diff-popup").html(result["diff"]);
|
|||
|
}
|
|||
|
}, "json");
|
|||
|
});
|
|||
|
}
|
|||
|
} else {
|
|||
|
Codeforces.putToStorageTtl(uuid, statementText, 6 * 60 * 60);
|
|||
|
}
|
|||
|
});
|
|||
|
});
|
|||
|
</script>
|
|||
|
|
|||
|
|
|||
|
<script type="text/javascript">
|
|||
|
$(document).ready(function () {
|
|||
|
|
|||
|
function endsWith(string, suffix) {
|
|||
|
return string.indexOf(suffix, string.length - suffix.length) !== -1;
|
|||
|
}
|
|||
|
|
|||
|
const inputFileDiv = $("div.input-file");
|
|||
|
const inputFile = inputFileDiv.text();
|
|||
|
const outputFileDiv = $("div.output-file");
|
|||
|
const outputFile = outputFileDiv.text();
|
|||
|
|
|||
|
|
|||
|
if (!endsWith(inputFile, "standard input")
|
|||
|
&& !endsWith(inputFile, "standard input")) {
|
|||
|
inputFileDiv.attr("style", "font-weight: bold");
|
|||
|
}
|
|||
|
|
|||
|
if (!endsWith(outputFile, "standard output")
|
|||
|
&& !endsWith(outputFile, "standard output")) {
|
|||
|
outputFileDiv.attr("style", "font-weight: bold");
|
|||
|
}
|
|||
|
|
|||
|
const titleDiv = $("div.header div.title");
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
});
|
|||
|
</script>
|
|||
|
</div>
|
|||
|
<div
|
|||
|
style="margin-bottom: 1em;"
|
|||
|
>
|
|||
|
|
|||
|
|
|||
|
<div class="problemindexholder" problemindex="E" data-uuid="ps_6cdacdbd744c7f81fa927bce5b5ef891fbd0ef3e">
|
|||
|
<div style="display: none; margin:1em 0;text-align: center; position: relative;" class="alert alert-info diff-notifier">
|
|||
|
<div>The problem statement has recently been changed. <a class="view-changes" href="#">View the changes.</a></div>
|
|||
|
<span class="diff-notifier-close" style="position: absolute; top: 0.2em; right: 0.3em; cursor: pointer; font-size: 1.4em;">×</span>
|
|||
|
</div>
|
|||
|
<div class="ttypography"><div class="problem-statement"><div class="header"><div class="title">E. Phone Talks</div><div class="time-limit"><div class="property-title">time limit per test</div>3 seconds</div><div class="memory-limit"><div class="property-title">memory limit per test</div>256 megabytes</div><div class="input-file"><div class="property-title">input</div>standard input</div><div class="output-file"><div class="property-title">output</div>standard output</div></div><div><p>Cool J has recently become a businessman Mr. Jackson, and he has to make a lot of phone calls now. Today he has <span class="tex-span"><i>n</i></span> calls planned. For each call we know the moment <span class="tex-span"><i>t</i><sub class="lower-index"><i>i</i></sub></span> (in seconds since the start of the day) when it is scheduled to start and its duration <span class="tex-span"><i>d</i><sub class="lower-index"><i>i</i></sub></span> (in seconds). All <span class="tex-span"><i>t</i><sub class="lower-index"><i>i</i></sub></span> are different. Mr. Jackson is a very important person, so he never dials anybody himself, all calls will be incoming.</p><p>Mr. Jackson isn't Caesar and he can't do several things at once. If somebody calls him while he hasn't finished the previous conversation, Mr. Jackson puts the new call on hold in the queue. In this case immediately after the end of the current call Mr. Jackson takes the earliest incoming call from the queue and starts the conversation. If Mr. Jackson started the call at the second <span class="tex-span"><i>t</i></span>, and the call continues for <span class="tex-span"><i>d</i></span> seconds, then Mr. Jackson is busy at seconds <span class="tex-span"><i>t</i>, <i>t</i> + 1, ..., <i>t</i> + <i>d</i> - 1</span>, and he can start a new call at second <span class="tex-span"><i>t</i> + <i>d</i></span>. Note that if Mr. Jackson is not busy talking when somebody calls, he can't put this call on hold.</p><p>Mr. Jackson isn't Napoleon either, he likes to sleep. So sometimes he allows himself the luxury of ignoring a call, as if it never was scheduled. He can ignore at most <span class="tex-span"><i>k</i></span> calls. Note that a call which comes while he is busy talking can be ignored as well.</p><p>What is the maximum number of seconds Mr. Jackson can sleep today, assuming that he can choose an arbitrary continuous time segment from the current day (that is, with seconds from the 1-st to the 86400-th, inclusive) when he is not busy talking?</p><p>Note that some calls can be continued or postponed to the next day or even later. However, the interval for sleep should be completely within the current day.</p></div><div class="input-specification"><div class="section-title">Input</div><p>The first input line contains a pair of integers <span class="tex-span"><i>n</i></span>, <span class="tex-span"><i>k</i></span> (<span class="tex-span">0 ≤ <i>k</i> ≤ <i>n</i> ≤ 4000</span>) separated by a space. Following <span class="tex-span"><i>n</i></span> lines contain the description of calls for today. The description of each call is located on the single line and consists of two space-separated integers <span class="tex-span"><i>t</i><sub class="lower-index"><i>i</i></sub></span> and <span class="tex-span"><i>d</i><sub class="lower-index"><i>i</i></sub></span>, (<span class="tex-span">1 ≤ <i>t</i><sub class="lower-index"><i>i</i></sub>, <i>d</i><sub class="lower-index"><i>i</i></sub> ≤ 86400</span>). All <span class="tex-span"><i>t</i><sub class="lower-index"><i>i</i></sub></span> are distinct, the calls are given in the order of strict increasing <span class="tex-span"><i>t</i><sub class="lower-index"><i>i</i></sub></span>.</p><p>Scheduled times of calls [<span class="tex-span"><i>t</i><sub class="lower-index"><i>i</i></sub></span>, <span class="tex-span"><i>t</i><sub class="lower-index"><i>i</i></sub> + <i>d</i><sub class="lower-index"><i>i</i></sub> - 1</span>] can arbitrarily intersect.</p></div><div class="output-specification"><div
|
|||
|
</div>
|
|||
|
|
|||
|
<script>
|
|||
|
$(function () {
|
|||
|
Codeforces.addMathJaxListener(function () {
|
|||
|
let $problem = $("div[problemindex=E]");
|
|||
|
let uuid = $problem.attr("data-uuid");
|
|||
|
let statementText = convertStatementToText($problem.find(".ttypography").get(0));
|
|||
|
|
|||
|
let previousStatementText = Codeforces.getFromStorage(uuid);
|
|||
|
if (previousStatementText) {
|
|||
|
if (previousStatementText !== statementText) {
|
|||
|
$problem.find(".diff-notifier").show();
|
|||
|
|
|||
|
$problem.find(".diff-notifier-close").click(function() {
|
|||
|
Codeforces.putToStorageTtl(uuid, statementText, 6 * 60 * 60);
|
|||
|
$problem.find(".diff-notifier").hide();
|
|||
|
});
|
|||
|
|
|||
|
$problem.find("a.view-changes").click(function() {
|
|||
|
$.post("/data/diff", {action: "getDiff", a: previousStatementText, b: statementText}, function (result) {
|
|||
|
if (result["success"] === "true") {
|
|||
|
Codeforces.facebox(".diff-popup", "//codeforces.org/s/34323");
|
|||
|
$("#facebox .diff-popup").html(result["diff"]);
|
|||
|
}
|
|||
|
}, "json");
|
|||
|
});
|
|||
|
}
|
|||
|
} else {
|
|||
|
Codeforces.putToStorageTtl(uuid, statementText, 6 * 60 * 60);
|
|||
|
}
|
|||
|
});
|
|||
|
});
|
|||
|
</script>
|
|||
|
|
|||
|
|
|||
|
<script type="text/javascript">
|
|||
|
$(document).ready(function () {
|
|||
|
|
|||
|
function endsWith(string, suffix) {
|
|||
|
return string.indexOf(suffix, string.length - suffix.length) !== -1;
|
|||
|
}
|
|||
|
|
|||
|
const inputFileDiv = $("div.input-file");
|
|||
|
const inputFile = inputFileDiv.text();
|
|||
|
const outputFileDiv = $("div.output-file");
|
|||
|
const outputFile = outputFileDiv.text();
|
|||
|
|
|||
|
|
|||
|
if (!endsWith(inputFile, "standard input")
|
|||
|
&& !endsWith(inputFile, "standard input")) {
|
|||
|
inputFileDiv.attr("style", "font-weight: bold");
|
|||
|
}
|
|||
|
|
|||
|
if (!endsWith(outputFile, "standard output")
|
|||
|
&& !endsWith(outputFile, "standard output")) {
|
|||
|
outputFileDiv.attr("style", "font-weight: bold");
|
|||
|
}
|
|||
|
|
|||
|
const titleDiv = $("div.header div.title");
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
});
|
|||
|
</script>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div id="footer">
|
|||
|
<div><a href="https://codeforces.com/">Codeforces</a> (c) Copyright 2010-2023 Mike Mirzayanov</div>
|
|||
|
<div>The only programming contests Web 2.0 platform</div>
|
|||
|
|
|||
|
</div>
|
|||
|
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<script type="application/javascript">
|
|||
|
if ('serviceWorker' in navigator && 'fetch' in window && 'caches' in window) {
|
|||
|
navigator.serviceWorker.register('/service-worker-34323.js')
|
|||
|
.then(function (registration) {
|
|||
|
console.log('Service worker registered: ', registration);
|
|||
|
})
|
|||
|
.catch(function (error) {
|
|||
|
console.log('Registration failed: ', error);
|
|||
|
});
|
|||
|
}
|
|||
|
</script>
|
|||
|
<script>(function(){var js = "window['__CF$cv$params']={r:'7e42e48cbeb2b342',m:'PgnQATcEouzBx_DCDW2STVwrZjy7a2XUy.SaJ_o8Lv4-1688930096-0-AaOLcR9eJ0f6Ju2F7htPkOszNmD1hN003nAuW0dvByTT'};_cpo=document.createElement('script');_cpo.nonce='',_cpo.src='/cdn-cgi/challenge-platform/scripts/invisible.js',document.getElementsByTagName('head')[0].appendChild(_cpo);";var _0xh = document.createElement('iframe');_0xh.height = 1;_0xh.width = 1;_0xh.style.position = 'absolute';_0xh.style.top = 0;_0xh.style.left = 0;_0xh.style.border = 'none';_0xh.style.visibility = 'hidden';document.body.appendChild(_0xh);function handler() {var _0xi = _0xh.contentDocument || _0xh.contentWindow.document;if (_0xi) {var _0xj = _0xi.createElement('script');_0xj.nonce = '';_0xj.innerHTML = js;_0xi.getElementsByTagName('head')[0].appendChild(_0xj);}}if (document.readyState !== 'loading') {handler();} else if (window.addEventListener) {document.addEventListener('DOMContentLoaded', handler);} else {var prev = document.onreadystatechange || function () {};document.onreadystatechange = function (e) {prev(e);if (document.readyState !== 'loading') {document.onreadystatechange = prev;handler();}};}})();</script></body>
|
|||
|
</html>
|