{"id":127,"date":"2016-09-12T11:06:34","date_gmt":"2016-09-12T14:06:34","guid":{"rendered":"http:\/\/www.galirows.com.br\/meublog\/competir\/?p=127"},"modified":"2016-09-12T11:07:20","modified_gmt":"2016-09-12T14:07:20","slug":"overflow-obi2009","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/competir\/overflow-obi2009\/","title":{"rendered":"Overflow [OBI 2009]"},"content":{"rendered":"<p style=\"text-align: right;\"><strong>OBI2009 &#8211; Fase 1 &#8211; N\u00edvel J\u00fanior<\/strong><\/p>\n<p>Os computadores foram inventados para realizar c\u00e1lculos muito rapidamente, e atendem a esse requisito de maneira extraordin\u00e1ria. Por\u00e9m, nem toda conta pode ser feita num computador, pois ele n\u00e3o consegue representar todos os n\u00fameros dentro de sua mem\u00f3ria. Em um computador pessoal atual, por exemplo, o maior inteiro que \u00e9 poss\u00edvel representar em sua mem\u00f3ria \u00e9 4.294.967.295. Caso alguma conta executada pelo computador d\u00ea um resultado acima desse n\u00famero, ocorrer\u00e1 o que chamamos de <i>overflow<\/i>, que \u00e9 quando o computador faz uma conta e o resultado n\u00e3o pode ser representado, por ser maior do que o valor m\u00e1ximo permitido (em ingl\u00eas <i>overflow<\/i> significa trasbordar). Por exemplo, se um computador s\u00f3 pode representar n\u00fameros menores do que 1023 e mandamos ele executar a conta 1022 + 5, vai ocorrer <i>overflow<\/i>.<\/p>\n<p><!--more--><\/p>\n<p>Dados o maior n\u00famero que um computador consegue representar e uma express\u00e3o de soma ou multiplica\u00e7\u00e3o entre dois inteiros, determine se ocorrer\u00e1 <i>overflow<\/i>.<\/p>\n<p><strong>Entrada<\/strong><\/p>\n<p>A primeira linha da entrada cont\u00e9m um inteiro N representando o maior n\u00famero que o computador consegue representar. A segunda linha cont\u00e9m um inteiro P, seguido de um espa\u00e7o em branco, seguido de um caractere C (que pode ser &#8216;+&#8217; ou &#8216;*&#8217;, representando os operadores de adi\u00e7\u00e3o e multiplica\u00e7\u00e3o, respectivamente), seguido de um espa\u00e7o em branco, seguido de um outro inteiro Q. Essa linha representa a express\u00e3o P + Q , se o caractere C for &#8216;+&#8217;, ou P x Q, se o caractere C for &#8216;*&#8217;.<\/p>\n<p><strong>Sa\u00edda<\/strong><\/p>\n<p>Se programa deve imprimir uma \u00fanica linha, contendo a palavra &#8216;OVERFLOW &#8216; se o resultado da express\u00e3o causar um <i>overflow<\/i>, ou a palavra &#8216;OK &#8216; caso contr\u00e1rio. Ambas as palavras devem ser escritas com letras mai\u00fasculas.<\/p>\n<p><strong>Exemplos<\/strong><\/p>\n<table style=\"width: 370px; height: 121px;\" border=\"1\" cellspacing=\"2\" cellpadding=\"5\">\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><strong>Entrada<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>Sa\u00edda<\/strong><\/td>\n<\/tr>\n<tr>\n<td>10<br \/>\n5 + 5<\/td>\n<td>OK<\/td>\n<\/tr>\n<tr>\n<td>44<br \/>\n23 * 2<\/td>\n<td>OVERFLOW<\/td>\n<\/tr>\n<tr>\n<td>323500<br \/>\n42 * 35<\/td>\n<td>OK<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>A quest\u00e3o pode ser acessada atrav\u00e9s do link:\u00a0<a href=\"http:\/\/olimpiada.ic.unicamp.br\/pratique\/programacao\/nivelj\/2009f1pj_overflow\" target=\"_blank\">http:\/\/olimpiada.ic.unicamp.br\/pratique\/programacao\/nivelj\/2009f1pj_overflow<\/a><\/p>\n<p>Nesse link tamb\u00e9m existe a op\u00e7\u00e3o de testar o algoritmo desenvolvido e ver automaticamente se o algoritmo est\u00e1 correto (bot\u00e3o \u201cSubmete solu\u00e7\u00e3o\u201d). Entre as linguagens de programa\u00e7\u00e3o dispon\u00edvel est\u00e1 Python, que \u00e9 linguagem utilizada na codifica\u00e7\u00e3o presente no v\u00eddeo.<\/p>\n<p><strong>Solu\u00e7\u00e3o em C\/C++<br \/>\n<\/strong><\/p>\n<pre class=\"lang:c decode:true\">#include &lt;stdio.h&gt;\r\n\r\nint main() {\r\n  int N, P, Q, total;\r\n  char C;\r\n\r\n  scanf(\"%d\", &amp;N);\r\n  scanf(\"%d %c %d\", &amp;P, &amp;C, &amp;Q);\r\n  \/\/scanf(\"%d%d %c %d\", &amp;N, &amp;P, &amp;C, &amp;Q); \/\/poderia ser apenas esse comando\r\n  \r\n  if (C == '+') {\r\n    total = P + Q;\r\n  } else {\r\n  \ttotal = P * Q;\r\n  }\r\n\r\n  if (total &gt; N) {\r\n    printf(\"OVERFLOW\\n\");\r\n  } else {\r\n    printf(\"OK\\n\");\r\n  }\r\n\r\n  return 0;\r\n}\r\n<\/pre>\n<p>Experimente esse c\u00f3digo em: <a href=\"http:\/\/ideone.com\/ekhIOe\" target=\"_blank\">http:\/\/ideone.com\/ekhIOe<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>OBI2009 &#8211; Fase 1 &#8211; N\u00edvel J\u00fanior Os computadores foram inventados para realizar c\u00e1lculos muito rapidamente, e atendem a esse requisito de maneira extraordin\u00e1ria. Por\u00e9m, nem toda conta pode ser feita num computador, pois ele n\u00e3o consegue representar todos os n\u00fameros dentro de sua mem\u00f3ria. Em um computador pessoal atual, por exemplo, o maior inteiro [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,6],"tags":[10],"class_list":["post-127","post","type-post","status-publish","format-standard","hentry","category-cc","category-obi","tag-if"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/posts\/127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/comments?post=127"}],"version-history":[{"count":3,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/posts\/127\/revisions"}],"predecessor-version":[{"id":132,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/posts\/127\/revisions\/132"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/media?parent=127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/categories?post=127"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/tags?post=127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}