NepřihlášenKSP fórum
Fórum Hlavní stránka Nápověda Hledat Přihlásit
Nahoru Téma KSP / CodEx / 26-1-3 Plynové kapsy
- - Od Backup Dne 24. 09. 2013 22:18
Zdravíčko,
je vstup k této úloze opravdu tak mizerný, jak je v zadání psáno?
1, Nevíme délku řetězce - musíme si alokovat celý milión znaků
2, Nevíme počet dotazů - musíme podle aktuální konstelace hvězd odhadnout kolik řádků budeme zpracovávat
Nadřazený - - Od Vojtěch Sejkora (Org) Dne 26. 09. 2013 17:47
add 1 si nejsem jist, ale očekával bych, že 1M znaků je relativně málo, tedy si můžeš alokovat 1M velké pole pro znaky
add 2 obvykle se dá nějak zjistit, že soubor nebo obecněji vstup je už přečten celý :-)

nevím v jakém jazyce píšeš, jinak bych ti na tu 2ku dokázal odpovědět asi lépe :-) (tedy i jak se to dá zjistit)
Nadřazený - - Od Ratan Dne 05. 10. 2013 12:31
Programuji v C/C++ a trochu tápu v tom co je vstup... jestli nějaký soubor, potom bych konec vstupu určil, nebo je to psané z příkazové řádky a nevím jak to určit. A pokud to je soubor jak se jmenuje... Asi píšu úplnou blbost, ale ze zadání to moc nevyplývá.
Nadřazený - - Od vorner (Org) Dne 05. 10. 2013 12:45
Ahoj

Pokud v popisu úlohy nikde není zmínka o jménu souboru, tak je to opravdu standardní vstup (tedy, jakoby z klávesnice).

Používáš <cstdio> a nebo <iostream>?

Pokud to první, pak věz, že standardní vstup je stdin a tedy můžeš bez problémů používat věci jako feof(stdin).

Pokud to druhé, tak std::cin má metodu eof() jako cokoliv jiného.

Nebo myslíš jak takovému programu na jeho standardní vstup zadat ten konec? Tak
nejjednodušší bývá napsat si vstup do souboru a potom ho přesměrovat přes:

./program <soubor (případně pod windows program.exe <soubor).

Na unixových systémech se dá napsat konec vstupu i z terminálu, pomocí CRL+d, jestli totéž jde i pod windows, tak nevím.
Nadřazený - Od Petr Onderka (Org) Dne 06. 10. 2013 12:09
Ve Windows to je CTRL+Z na samostatném řádku (teda Enter, CTRL+Z, Enter).
Nadřazený - - Od Marek Černý (Org) Dne 09. 10. 2013 16:25
Dobrý den,
mohl bych se zeptat jak zjistím v C++ zda je vstup celý?
Mám tuto konstrukci:
  while(1){
    cin >> x >> y;
    //...
  }
Cyklus lze ukončit pouze zadáním špatná hodnoty, pokud dám více enterů zasebou, ukončit nelze... Je na to nějaká podmínka?

Děkuji! :)
Nadřazený - Od Vojtěch Sejkora (Org) Dne 09. 10. 2013 17:32
enter není ukončení vstupu

na win to uděláš pomocí CTRL+Z (viz. příspěvek Petra Onderky), na linuxu CTRL+D

jak v C++ zjistit, že skončil soubor psal vorner

std::cin má metodu eof()
Nadřazený - - Od rehak.dorian@seznam.cz Dne 16. 10. 2013 18:33
Já mám taky jednu otázečku. Možná jsem si to jenom blbě přečet, ale pochopil jsem to tak, že na vstupu bude dotaz, můj program hned odpoví na výstup, a tahle dvojice dějů proběhne třeba 1000x. Anebo je to tak, že dostanu 1000 dotazů a pak mám vrátit 1000 odpovědí?

Předem díky za odpověď :)
Nadřazený - Od Vojtěch Sejkora (Org) Dne 17. 10. 2013 01:07

> Já mám taky jednu otázečku. Možná jsem si to jenom blbě přečet, ale pochopil jsem to tak, že na vstupu bude dotaz, můj program hned odpoví na výstup, a tahle dvojice dějů proběhne třeba 1000x. >Anebo je to tak, že dostanu 1000 dotazů a pak mám vrátit 1000 odpovědí?


Pokud vím, tak nikdy nezáleželo na tom, kdy začneš výstup vypisovat. Tedy je jen na tobě, jeslti si ty dotazy nakešuješ a pak zpracuješ, nebo zpracuješ jeden a rovnou odpovíš.
Nadřazený - - Od Tomáš Maleček (Org) Dne 18. 10. 2013 12:23
Zadání se tě ptá na datovou strukturu. Tedy opravdu říká, že bys měl dostat dotaz a hned odpovědět.

Druhá věc je, co umíme pomocí CodExu změřit. Na testování interaktivních programů není stavěný. S trochou technických obtíží by myslím šlo opravdu vynutit i tohle omezení, ale typicky dáváme k dispozici rovnou celý vstup a kontrolujeme až celý výstup a celkovou dobu běhu programu. Ani tentokrát jsme neudělali výjimku.

Pokud se ti tedy podaří vejít se do časových a paměťových limitů, klidně můžeš přečíst celý vstup najednou, provést nějaký výpočet a teprve na konci vypsat výstup. Ale upozorňuji předem, že úloha tak očividně nebyla myšlená a možná takovým způsobem vyřešit nepůjde kvůli paměti nebo času.
Nadřazený - Od Medvěd (Org) Dne 18. 10. 2013 12:25

> Druhá věc je, co umíme pomocí CodExu změřit. Na testování interaktivních
> programů není stavěný.


Jeho uživatelské rozhraní ne, vnitřnosti to zvládají obstojně.
Jen to autor úlohy nemůže naklikat a musí napsat konfiguraci úlohy ručně.
- - Od Jakub Maroušek (Org) Dne 21. 10. 2013 21:26
Úlohu jsem do Codexu poslal až teď, a ačkoliv všechny testy proběhly v pořádku, systém mi nenapsal body do výsledkové tabulky, mám tam pořád nulu. Nesouvisí to nějak s tím, že v Codexu je nastaven termín na 21. 10. 8.00?
Úlohu jsem schválně odevzdával až dnes, chtěl jsem využít toho, že v letáku bylo napsáno, že termín odevzdání Codexové úlohy je o den posunutý...
Nadřazený - Od Jiří Setnička (Org) Dne 21. 10. 2013 21:44
Ahoj!

Při zadávání úlohy v CodExu jsme omylem zadali u úlohy stejné datum jako u ostatních úloh. Již jsme to opravili a máš tedy přidělené v CodExu odpovídající body :)
Nahoru Téma KSP / CodEx / 26-1-3 Plynové kapsy

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill