mirror of
https://gitlab.com/mfocko/Codeforces.git
synced 2024-11-13 23:49:42 +01:00
Matej Focko
6589b762d9
Signed-off-by: Matej Focko <mfocko@redhat.com> diff --git a/41/a.cpp b/41/a.cpp new file mode 100644 index 0000000..688673b --- /dev/null +++ b/41/a.cpp @@ -0,0 +1,100 @@ +#include <algorithm> +#include <cassert> +#include <cctype> +#include <cstdint> +#include <functional> +#include <iostream> +#include <optional> +#include <sstream> +#include <string> +#include <vector> + +namespace helpers { + +using namespace std; + +long pow(long base, long exp) { + if (exp == 0) return 1; + long half = pow(base, exp / 2); + if (exp % 2 == 0) return half * half; + return half * half * base; +} + +template <typename T> +inline void answer(const T& ans) { + cout << ans << "\n"; +} + +inline void yes() { cout << "YES\n"; } +inline void no() { cout << "NO\n"; } + +inline void yesno(bool answer) { + if (answer) { + yes(); + } else { + no(); + } +} + +} // namespace helpers + +namespace { + +using namespace std; +using namespace helpers; + +bool berlandish(const std::string& a, std::string b) { + std::reverse(b.begin(), b.end()); + return a == b; +} + +void solve() { + std::string l, r; + cin >> l >> r; + + yesno(berlandish(l, r)); +} + +} // namespace + +// for single test case, comment out for ‹N› test cases +#define SINGLE + +#ifdef TEST + +#include "../.common/cpp/catch_amalgamated.hpp" + +TEST_CASE("examples") { + CHECK(berlandish("code", "edoc")); + CHECK(berlandish("edoc", "code")); + + CHECK(!berlandish("abb", "aba")); + CHECK(!berlandish("aba", "abb")); + + CHECK(!berlandish("code", "code")); +} + +#else + +int main(void) { + +#ifdef SINGLE + + solve(); + +#else + + // for multiple test cases + int N; + std::cin >> N >> std::ws; + + for (auto i = 0; i < N; ++i) { + solve(); + } + +#endif + + return 0; +} + +#endif diff --git a/41/index.html b/41/index.html new file mode 100644 index 0000000..20495ec --- /dev/null +++ b/41/index.html @@ -0,0 +1,1035 @@ + +<!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="b8aac58de3169f516e214bb46265681f"/> + <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/62837/css/font-awesome.min.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/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/62837/css/prettify.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/clear.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/style.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/ttypography.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/problem-statement.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/second-level-menu.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/roundbox.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/datatable.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/table-form.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/topic.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/jquery.jgrowl.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/facebox.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/jquery.wysiwyg.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/jquery.autocomplete.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/codeforces.datepick.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/colorbox.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/jquery.drafts.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/css/community.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/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/62837/js/prettify/prettify.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/moment-with-locales.min.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/pushstream.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/jquery.easing.min.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/jquery.lavalamp.min.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/jquery.jgrowl.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/jquery.swipe.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/jquery.hotkeys.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/facebox.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/jquery.wysiwyg.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/controls/wysiwyg.colorpicker.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/controls/wysiwyg.table.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/controls/wysiwyg.image.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/controls/wysiwyg.link.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/jquery.autocomplete.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/jquery.datepick.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/jquery.ie6blocker.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/jquery.colorbox-min.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/jquery.ba-bbq.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/jquery.drafts.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/clipboard.min.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/autosize.min.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/sjcl.js"></script> + <script type="text/javascript" src="/scripts/7524722dd28773e2987937a750cd80cd/en/codeforces-options.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/codeforces.js?v=20160131"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/EventCatcher.js?v=20160131"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/preparedVerdictFormats-en.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/js/confetti.min.js"></script> + <!--/CombineResourcesFilter--> + + <link rel="stylesheet" href="//codeforces.org/s/62837/markitup/skins/markitup/style.css" type="text/css" charset="utf-8" /> + <link rel="stylesheet" href="//codeforces.org/s/62837/markitup/sets/markdown/style.css" type="text/css" charset="utf-8" /> + + + <script type="text/javascript" src="//codeforces.org/s/62837/markitup/jquery.markitup.js"></script> + <script type="text/javascript" src="//codeforces.org/s/62837/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='b8aac58de3169f516e214bb46265681f'> </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;"> + <a href="/"><img height="65" style="height: 65px;" src="//codeforces.org/s/14919/images/codeforces-sponsored-by-ton.png" alt="Codeforces"/></a> + </div> + <div class="lang"> + <div style="text-align: right;"> + <a href="?locale=en"><img src="//codeforces.org/s/14919/images/flags/24/gb.png" title="In English" alt="In English"/></a> + <a href="?locale=ru"><img src="//codeforces.org/s/14919/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">Codeforces Beta Round 40 (Div. 2)</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_8331c8f70a671d517c00a819fb942a10a8f3e6cf"> + <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. Translation</div><div class="time-limit"><div class="property-title">time limit per test</div>2 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 translation from the Berland language into the Birland language is not an easy task. Those languages are very similar: a berlandish word differs from a birlandish word with the same meaning a little: it is spelled (and pronounced) reversely. For example, a Berlandish word <span class="tex-font-style-tt">code</span> corresponds to a Birlandish word <span class="tex-font-style-tt">edoc</span>. However, it's easy to make a mistake during the «translation». Vasya translated word <span class="tex-span"><i>s</i></span> from Berlandish into Birlandish as <span class="tex-span"><i>t</i></span>. Help him: find out if he translated the word correctly.</p></div><div class="input-specification"><div class="section-title">Input</div><p>The first line contains word <span class="tex-span"><i>s</i></span>, the second line contains word <span class="tex-span"><i>t</i></span>. The words consist of lowercase Latin letters. The input data do not consist unnecessary spaces. The words are not empty and their lengths do not exceed 100 symbols.</p></div><div class="output-specification"><div class="section-title">Output</div><p>If the word <span class="tex-span"><i>t</i></span> is a word <span class="tex-span"><i>s</i></span>, written reversely, print <span class="tex-font-style-tt">YES</span>, otherwise print <span class="tex-font-style-tt">NO</span>.</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>code<br />edoc<br /></pre></div><div class="output"><div class="title">Output</div><pre>YES<br /></pre></div><div class="input"><div class="title">Input</div><pre>abb<br />aba<br /></pre></div><div class="output"><div class="title">Output</div><pre>NO<br /></pre></div><div class="input"><div class="title">Input</div><pre>code<br />code<br /></pre></div><div class="output"><div class="title">Output</div><pre>NO<br /></pre></div></div></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/14919"); + $("#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_52bf049a3616d9620ca022505ce9aca4ccb23164"> + <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. Martian Dollar</div><div class="time-limit"><div class="property-title">time limit per test</div>2 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>One day Vasya got hold of information on the Martian dollar course in bourles for the next <span class="tex-span"><i>n</i></span> days. The buying prices and the selling prices for one dollar on day <span class="tex-span"><i>i</i></span> are the same and are equal to <span class="tex-span"><i>a</i><sub class="lower-index"><i>i</i></sub></span>. Vasya has <span class="tex-span"><i>b</i></span> bourles. He can buy a certain number of dollars and then sell it no more than once in <span class="tex-span"><i>n</i></span> days. According to Martian laws, one can buy only an integer number of dollars. Which maximal sum of money in bourles can Vasya get by the end of day <span class="tex-span"><i>n</i></span>?</p></div><div class="input-specification"><div class="section-title">Input</div><p>The first line contains two integers <span class="tex-span"><i>n</i></span> and <span class="tex-span"><i>b</i></span> (<span class="tex-span">1 ≤ <i>n</i>, <i>b</i> ≤ 2000</span>) — the number of days and the initial number of money in bourles. The next line contains <span class="tex-span"><i>n</i></span> integers <span class="tex-span"><i>a</i><sub class="lower-index"><i>i</i></sub></span> (<span class="tex-span">1 ≤ <i>a</i><sub class="lower-index"><i>i</i></sub> ≤ 2000</span>) — the prices of Martian dollars.</p></div><div class="output-specification"><div class="section-title">Output</div><p>Print the single number — which maximal sum of money in bourles can Vasya get by the end of day <span class="tex-span"><i>n</i></span>.</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>2 4<br />3 7<br /></pre></div><div class="output"><div class="title">Output</div><pre>8<br /></pre></div><div class="input"><div class="title">Input</div><pre>4 10<br />4 3 2 1<br /></pre></div><div class="output"><div class="title">Output</div><pre>10<br /></pre></div><div class="input"><div class="title">Input</div><pre>4 10<br />4 2 3 1<br /></pre></div><div class="output"><div class="title">Output</div><pre>15<br /></pre></div></div></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/14919"); + $("#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_5dacd700641ff8e7537eb3f5d2b86ba9683a2450"> + <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. Email address</div><div class="time-limit"><div class="property-title">time limit per test</div>2 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>Sometimes one has to spell email addresses over the phone. Then one usually pronounces a dot as <span class="tex-font-style-tt">dot</span>, an at sign as <span class="tex-font-style-tt">at</span>. As a result, we get something like <span class="tex-font-style-tt">vasyaatgmaildotcom</span>. Your task is to transform it into a proper email address (<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="671106141e0627000a060e0b4904080a">[email protected]</a>). </p><p>It is known that a proper email address contains only such symbols as <span class="tex-font-style-tt">.</span> <span class="tex-font-style-tt">@</span> and lower-case Latin letters, doesn't start with and doesn't end with a dot. Also, a proper email address doesn't start with and doesn't end with an at sign. Moreover, an email address contains exactly one such symbol as <span class="tex-font-style-tt">@</span>, yet may contain any number (possible, zero) of dots. </p><p>You have to carry out a series of replacements so that the length of the result was as short as possible and it was a proper email address. If the lengths are equal, you should print the lexicographically minimal result. </p><p>Overall, two variants of replacement are possible: <span class="tex-font-style-tt">dot</span> can be replaced by a dot, <span class="tex-font-style-tt">at</span> can be replaced by an at. </p></div><div class="input-specification"><div class="section-title">Input</div><p>The first line contains the email address description. It is guaranteed that that is a proper email address with all the dots replaced by <span class="tex-font-style-tt">dot</span> an the at signs replaced by <span class="tex-font-style-tt">at</span>. The line is not empty and its length does not exceed 100 symbols.</p></div><div class="output-specification"><div class="section-title">Output</div><p>Print the shortest email address, from which the given line could be made by the described above replacements. If there are several solutions to that problem, print the lexicographically minimal one (the lexicographical comparison of the lines are implemented with an operator < in modern programming languages).</p><p>In the ASCII table the symbols go in this order: <span class="tex-font-style-tt">. @ ab</span>...<span class="tex-font-style-tt">z</span></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>vasyaatgmaildotcom<br /></pre></div><div class="output"><div class="title">Output</div><pre><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6f190e1c160e2f08020e0603410c0002">[email protected]</a><br /></pre></div><div class="input"><div class="title">Input</div><pre>dotdotdotatdotdotat<br /></pre></div><div class="output"><div class="title">Output</div><pre><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="14707b603a3a543a3a7560">[email protected]</a><br /></pre></div><div class="input"><div class="title">Input</div><pre>aatt<br /></pre></div><div class="output"><div class="title">Output</div><pre><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4f2e0f3b">[email protected]</a><br /></pre></div></div></div></div></div> +</div> + + <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><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/14919"); + $("#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_db9dbdb1dbc1624c112ba8c90a3f4e35041ab000"> + <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. Pawn</div><div class="time-limit"><div class="property-title">time limit per test</div>2 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>On some square in the lowest row of a chessboard a stands a pawn. It has only two variants of moving: upwards and leftwards or upwards and rightwards. The pawn can choose from which square of the lowest row it can start its journey. On each square lay from 0 to 9 peas. The pawn wants to reach the uppermost row having collected as many peas as possible. As there it will have to divide the peas between itself and its <span class="tex-span"><i>k</i></span> brothers, the number of peas must be divisible by <span class="tex-span"><i>k</i> + 1</span>. Find the maximal number of peas it will be able to collect and which moves it should make to do it.</p><p>The pawn cannot throw peas away or leave the board. When a pawn appears in some square of the board (including the first and last square of the way), it necessarily takes all the peas.</p></div><div class="input-specification"><div class="section-title">Input</div><p>The first line contains three integers <span class="tex-span"><i>n</i></span>, <span class="tex-span"><i>m</i></span>, <span class="tex-span"><i>k</i></span> (<span class="tex-span">2 ≤ <i>n</i>, <i>m</i> ≤ 100, 0 ≤ <i>k</i> ≤ 10</span>) — the number of rows and columns on the chessboard, the number of the pawn's brothers. Then follow <span class="tex-span"><i>n</i></span> lines containing each <span class="tex-span"><i>m</i></span> numbers from 0 to 9 without spaces — the chessboard's description. Each square is described by one number — the number of peas in it. The first line corresponds to the uppermost row and the last line — to the lowest row.</p></div><div class="output-specification"><div class="section-title">Output</div><p>If it is impossible to reach the highest row having collected the number of peas divisible by <span class="tex-span"><i>k</i> + 1</span>, print <span class="tex-font-style-tt">-1</span>. </p><p>Otherwise, the first line must contain a single number — the maximal number of peas the pawn can collect given that the number must be divisible by <span class="tex-span"><i>k</i> + 1</span>. The second line must contain a single number — the number of the square's column in the lowest row, from which the pawn must start its journey. The columns are numbered from the left to the right with integral numbers starting from <span class="tex-span">1</span>. The third line must contain a line consisting of <span class="tex-span"><i>n</i> - 1</span> symbols — the description of the pawn's moves. If the pawn must move upwards and leftwards, print <span class="tex-font-style-tt">L</span>, if it must move upwards and rightwards, print <span class="tex-font-style-tt">R</span>. If there are several solutions to that problem, print any of them.</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>3 3 1<br />123<br />456<br />789<br /></pre></div><div class="output"><div class="title">Output</div><pre>16<br />2<br />RL<br /></pre></div><div class="input"><div class="title">Input</div><pre>3 3 0<br />123<br />456<br />789<br /></pre></div><div class="output"><div class="title">Output</div><pre>17<br />3<br />LR<br /></pre></div><div class="input"><div class="title">Input</div><pre>2 2 10<br />98<br />75<br /></pre></div><div class="output"><div class="title">Output</div><pre>-1<br /></pre></div></div></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/14919"); + $("#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_0d3029e271df48120854052404ee08fd5fa41579"> + <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. 3-cycles</div><div class="time-limit"><div class="property-title">time limit per test</div>2 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>During a recent research Berland scientists found out that there were <span class="tex-span"><i>n</i></span> cities in Ancient Berland, joined by two-way paths. Any two cities are joined by no more than one path. No path joins a city with itself. According to a well-known tradition, the road network was built so that it would be impossible to choose three cities from each of which one can get to any other one directly. That is, there was no cycle exactly as long as 3. Unfortunately, the road map has not been preserved till nowadays. Now the scientists are interested how much developed a country Ancient Berland was. Help them - find, what maximal number of roads could be in the country. You also have to restore any of the possible road maps.</p></div><div class="input-specification"><div class="section-title">Input</div><p>The first line contains an integer <span class="tex-span"><i>n</i></span> (<span class="tex-span">1 ≤ <i>n</i> ≤ 100</span>) — the number of cities in Berland.</p></div><div class="output-specification"><div class="section-title">Output</div><p>On the first line must be printed number <span class="tex-span"><i>m</i></span> — the maximal number of roads in Berland. Then print <span class="tex-span"><i>m</i></span> lines containing two numbers each — the numbers of cities that the given road joins. The cities are numbered with integers from <span class="tex-span">1</span> to <span class="tex-span"><i>n</i></span>. If there are several variants of solving the problem, print any of them.</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>3<br /></pre></div><div class="output"><div class="title">Output</div><pre>2<br />1 2<br />2 3<br /></pre></div><div class="input"><div class="title">Input</div><pre>4<br /></pre></div><div class="output"><div class="title">Output</div><pre>4<br />1 2<br />2 3<br />3 4<br />4 1<br /></pre></div></div></div></div></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/14919"); + $("#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-14919.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:'7e4a78eb99adb38f',m:'o5c.HR3E2zMmZvOZCL5NM1U8g5J8gv.LQ0bjaze.QBE-1689009574-0-Acoc0NfA/uVr0uXCmTVgfA3IMHKdS42sf1bLEKlSQtWH'};_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>
100 lines
1.5 KiB
C++
100 lines
1.5 KiB
C++
#include <algorithm>
|
||
#include <cassert>
|
||
#include <cctype>
|
||
#include <cstdint>
|
||
#include <functional>
|
||
#include <iostream>
|
||
#include <optional>
|
||
#include <sstream>
|
||
#include <string>
|
||
#include <vector>
|
||
|
||
namespace helpers {
|
||
|
||
using namespace std;
|
||
|
||
long pow(long base, long exp) {
|
||
if (exp == 0) return 1;
|
||
long half = pow(base, exp / 2);
|
||
if (exp % 2 == 0) return half * half;
|
||
return half * half * base;
|
||
}
|
||
|
||
template <typename T>
|
||
inline void answer(const T& ans) {
|
||
cout << ans << "\n";
|
||
}
|
||
|
||
inline void yes() { cout << "YES\n"; }
|
||
inline void no() { cout << "NO\n"; }
|
||
|
||
inline void yesno(bool answer) {
|
||
if (answer) {
|
||
yes();
|
||
} else {
|
||
no();
|
||
}
|
||
}
|
||
|
||
} // namespace helpers
|
||
|
||
namespace {
|
||
|
||
using namespace std;
|
||
using namespace helpers;
|
||
|
||
bool berlandish(const std::string& a, std::string b) {
|
||
std::reverse(b.begin(), b.end());
|
||
return a == b;
|
||
}
|
||
|
||
void solve() {
|
||
std::string l, r;
|
||
cin >> l >> r;
|
||
|
||
yesno(berlandish(l, r));
|
||
}
|
||
|
||
} // namespace
|
||
|
||
// for single test case, comment out for ‹N› test cases
|
||
#define SINGLE
|
||
|
||
#ifdef TEST
|
||
|
||
#include "../.common/cpp/catch_amalgamated.hpp"
|
||
|
||
TEST_CASE("examples") {
|
||
CHECK(berlandish("code", "edoc"));
|
||
CHECK(berlandish("edoc", "code"));
|
||
|
||
CHECK(!berlandish("abb", "aba"));
|
||
CHECK(!berlandish("aba", "abb"));
|
||
|
||
CHECK(!berlandish("code", "code"));
|
||
}
|
||
|
||
#else
|
||
|
||
int main(void) {
|
||
|
||
#ifdef SINGLE
|
||
|
||
solve();
|
||
|
||
#else
|
||
|
||
// for multiple test cases
|
||
int N;
|
||
std::cin >> N >> std::ws;
|
||
|
||
for (auto i = 0; i < N; ++i) {
|
||
solve();
|
||
}
|
||
|
||
#endif
|
||
|
||
return 0;
|
||
}
|
||
|
||
#endif
|