{"id":2247,"date":"2014-10-31T20:54:32","date_gmt":"2014-10-31T19:54:32","guid":{"rendered":"http:\/\/www.valcon.it\/olimpiadi\/?p=2247"},"modified":"2015-07-01T18:59:50","modified_gmt":"2015-07-01T16:59:50","slug":"lo-struzzo-simone","status":"publish","type":"post","link":"https:\/\/www.valcon.it\/pascal\/lo-struzzo-simone\/","title":{"rendered":"Lo struzzo Simone"},"content":{"rendered":"<p>Lo struzzo Simone si sposta solo nelle direzioni dei quattro assi cardinali (Nord, Sud, Est, Ovest).<br \/>\nOgni suo passo misura <tt>1<\/tt> metro.<br \/>\nDovete scrivere un programma che, data una sequenza di spostamenti di Simone, misuri quant&#8217;\u00e8 la distanza fra il punto di partenza e il punto di arrivo.<\/p>\n<h3>Dati in input<\/h3>\n<p>Il file <tt>input.txt<\/tt> contiene la sequenza degli spostamenti.<br \/>\nTale file \u00e8 costituito da un&#8217;unica riga di testo, contenente una sequenza di <tt>S<\/tt>, <tt>N<\/tt>, <tt>E<\/tt>, <tt>O<\/tt> (che indicano gli spostamenti nelle direzioni Sud, Nord, Est, Ovest rispettivamente).<br \/>\nLa sequenza \u00e8 terminata da un <tt>*<\/tt>.<br \/>\nAd esempio, il file di input <tt>NNESO*<\/tt> dice che Simone si sposta di due metri a Nord, poi di un metro verso Est, poi di un metro verso Sud, e quindi di un metro a Ovest.<\/p>\n<h3>Dati in output<\/h3>\n<p>Il programma, dopo aver letto il file di input, deve calcolare la distanza in metri fra il punto di partenza e il punto di arrivo, e scriverla su un file di nome <tt>output.txt<\/tt>.<br \/>\nPi\u00f9 precisamente, il file <tt>output.txt<\/tt> deve contenere un&#8217;unica riga.<br \/>\nSu questa riga dovr\u00e0 comparire il numero intero corrispondente al quadrato della distanza.<\/p>\n<h3>Assunzioni<\/h3>\n<ol type=\"1\">\n<li>Il file di input non contiene altri caratteri oltre a quelli precisati.<\/li>\n<li>Il numero complessivo di spostamenti contenuti nel file di input \u00e8 minore o uguale a <tt>100000<\/tt>.<\/li>\n<li>Importante! Il programma non deve scrivere nulla sul video, e non deve interagire con l&#8217;utente. Deve solo leggere il file di input e scrivere il file di output.<\/li>\n<li>L&#8217;esecuzione del programma deve terminare entro <tt>5<\/tt> secondi.<\/li>\n<\/ol>\n<h3>Esempi<\/h3>\n<div class=\"indent\">\n<table class=\"data\">\n<tbody>\n<tr>\n<td><\/td>\n<th>input.txt<\/th>\n<th>output.txt<\/th>\n<\/tr>\n<tr>\n<th>1<\/th>\n<td><tt>NNSEEESNOENNS*<\/tt><\/td>\n<td><tt>13<\/tt><\/td>\n<\/tr>\n<tr>\n<th>2<\/th>\n<td><tt>NNESOS*<\/tt><\/td>\n<td><tt>0<\/tt><\/td>\n<\/tr>\n<tr>\n<th>3<\/th>\n<td><tt>OSOS*<\/tt><\/td>\n<td><tt>8<\/tt><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<hr\/>\n<pre class=\"lang:delphi decode:true \" >Program OII_2001_Lo_struzzo_Simone;\r\nVar\r\n        fIN, fOUT: Text;\r\n        px, py,\r\n        risposta: LongInt;\r\n        c       : Char;\r\nbegin\r\n        px:=0;\r\n        py:=0;\r\n\r\n        Assign(fIN, 'input.txt');\r\n        Reset(fIN);\r\n        While(Not Eof(fIN))  do\r\n           Begin\r\n                Read(fIN, c);\r\n                case(c) of\r\n                    'N': Inc(py);\r\n                    'E': Inc(px);\r\n                    'S': Dec(py);\r\n                    'O': Dec(px);\r\n                end;\r\n           End;\r\n        Close(fIN);\r\n\r\n        risposta:=px*px+py*py;\r\n\r\n        Assign(fOUT, 'output.txt');\r\n        Rewrite(fOUT);\r\n        write(fOUT, risposta);\r\n        Close(fOUT);\r\nend.<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Lo struzzo Simone si sposta solo nelle direzioni dei quattro assi cardinali (Nord, Sud, Est, Ovest). Ogni suo passo misura 1 metro. Dovete scrivere un programma che, data una sequenza di spostamenti di Simone, misuri quant&#8217;\u00e8 la distanza fra il punto di partenza e il punto di arrivo. Dati in input Il file input.txt contiene &#8230; <a title=\"Lo struzzo Simone\" class=\"read-more\" href=\"https:\/\/www.valcon.it\/pascal\/lo-struzzo-simone\/\" aria-label=\"Leggi di pi\u00f9 su Lo struzzo Simone\">Leggi tutto<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts\/2247"}],"collection":[{"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/comments?post=2247"}],"version-history":[{"count":1,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts\/2247\/revisions"}],"predecessor-version":[{"id":3057,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts\/2247\/revisions\/3057"}],"wp:attachment":[{"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/media?parent=2247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/categories?post=2247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/tags?post=2247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}