{"id":492,"date":"2022-08-18T18:02:12","date_gmt":"2022-08-18T21:02:12","guid":{"rendered":"http:\/\/www.galirows.com.br\/meublog\/competir\/?p=492"},"modified":"2022-08-18T18:19:36","modified_gmt":"2022-08-18T21:19:36","slug":"cartoes-maratona-2012","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/competir\/cartoes-maratona-2012\/","title":{"rendered":"Cart\u00f5es [Maratona 2012]"},"content":{"rendered":"\n<p>Dois jogadores, Alberto e Wanderley, disputam um jogo. Um conjunto com um n\u00famero par de cart\u00f5es contendo n\u00fameros inteiros \u00e9 disposto sobre uma mesa, um ao lado do outro, formando uma sequ\u00eancia. Alberto come\u00e7a, e pode pegar um dos dois cart\u00f5es das pontas. Wanderley ent\u00e3o pode pegar um dos dois cart\u00f5es das pontas e novamente Alberto pode pegar um cart\u00e3o das pontas, e assim por diante, at\u00e9 Wanderley pegar o \u00faltimo cart\u00e3o.<\/p>\n\n\n\n<p>Alberto, o primeiro a jogar, tem como objetivo maximizar o n\u00famero total de pontos que ele consegue, somando os valores dos cart\u00f5es escolhidos. Wanderley, o segundo jogador, quer atrapalhar o Alberto e fazer com que ele consiga o menor n\u00famero de pontos poss\u00edvel. Em suma, ambos querem fazer o melhor poss\u00edvel, Alberto querendo maximizar sua soma e Wanderley querendo minimizar a soma de Alberto.<\/p>\n\n\n\n<p>Voc\u00ea deve escrever um programa que, dada a sequ\u00eancia de cart\u00f5es, determine o maior n\u00famero de pontos que Alberto consegue obter.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">Entrada<\/h3>\n\n\n\n<p>Cada caso de teste \u00e9 descrito em duas linhas. A primeira linha cont\u00e9m um inteiro par&nbsp;<strong>N (<\/strong>2 \u2264&nbsp;<strong>N&nbsp;<\/strong>\u2264 10<sup>4<\/sup>), que indica o n\u00famero de cart\u00f5es sobre a mesa. A segunda cont\u00e9m&nbsp;<strong>N&nbsp;<\/strong>inteiros, que descrevem a sequ\u00eancia de cart\u00f5es. Cada um dos&nbsp;<strong>N&nbsp;<\/strong>inteiros cabem em um inteiro de 32 bits.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sa\u00edda<\/h3>\n\n\n\n<p>Para cada caso de teste seu programa deve imprimir uma \u00fanica linha, contendo um \u00fanico inteiro, o maior n\u00famero de pontos que Alberto consegue obter.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Entrada<\/strong><\/td><td><strong>Sa\u00edda<\/strong><\/td><\/tr><tr><td>4<br>0 -3 5 10<br>4<br>0 -3 5 7<br>4<br>47 50 -3 7<\/td><td>10<br>7<br>57<br><br><br><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Solu\u00e7\u00e3o em C\/C++<\/h3>\n\n\n\n<p><em><sub>* esta solu\u00e7\u00e3o foi baseada na apresentada em <a rel=\"noreferrer noopener\" href=\"https:\/\/www.life2coding.com\/uri-online-judge-solution-1224-cards-intermediate-problem\/\" target=\"_blank\">https:\/\/www.life2coding.com\/uri-online-judge-solution-1224-cards-intermediate-problem\/<\/a><\/sub><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"c\" class=\"language-c line-numbers\">#include &lt;stdio.h>\n\nint N, v[10000];\nlong long dp[10000][2];\n \n#define max(x, y) ((x) > (y) ? (x) : (y))\n#define min(x, y) ((x) &lt; (y) ? (x) : (y))\n \nint main() {   \n    while (scanf(\"%d\", &amp;N) != EOF) {   \n        for (int i = 0; i &lt; N; ++i) {\n            scanf(\"%d\", &amp;v[i]);\n        }\n        for (int i = 0; i &lt; N - 1; ++i) {\n            dp[i][0] = max(v[i], v[i + 1]);\n        }\n        int turn = 0;\n        int pastTurn = 1;\n        for (int intervalSize = 4; intervalSize &lt;= N; intervalSize += 2) {\n            pastTurn = turn;\n            turn = (!(turn &amp; 1));\n            for (int i = 0, j = intervalSize - 1; j &lt; N; ++i, ++j) {\n                dp[i][turn] = max(v[i] + min(dp[i + 1][pastTurn], dp[i + 2][pastTurn]),\n                                  v[j] + min(dp[i][pastTurn], dp[i + 1][pastTurn]));\n            }\n        }\n        printf(\"%lld\\n\", dp[0][turn]);\n    }\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Teste o c\u00f3digo em: <a href=\"https:\/\/ideone.com\/IEmhOo\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/ideone.com\/IEmhOo<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dois jogadores, Alberto e Wanderley, disputam um jogo. Um conjunto com um n\u00famero par de cart\u00f5es contendo n\u00fameros inteiros \u00e9 disposto sobre uma mesa, um ao lado do outro, formando uma sequ\u00eancia. Alberto come\u00e7a, e pode pegar um dos dois cart\u00f5es das pontas. Wanderley ent\u00e3o pode pegar um dos dois cart\u00f5es das pontas e novamente [&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,7],"tags":[],"class_list":["post-492","post","type-post","status-publish","format-standard","hentry","category-cc","category-maratona-de-programacao"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/posts\/492","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=492"}],"version-history":[{"count":3,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/posts\/492\/revisions"}],"predecessor-version":[{"id":498,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/posts\/492\/revisions\/498"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/media?parent=492"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/categories?post=492"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/competir\/wp-json\/wp\/v2\/tags?post=492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}