Uwzględniłem te spacje: https://ideone.com/G9DUoU8
Ale dalej brak AC...
Czy teraz muszę uwzględnić gdy tych spacji tam NIE MA?
Jeżeli tak to naprawdę nie ma to żadnego sensu...
W końcu
To trochę pytanie filozoficzne, możesz spytać autora, chociaż gdybyś trochę pomyślał, może sam znalazłbyś odpowiedz?
mniej więcej jak wyżej, nie będę się kłócił, czy to jest z sensem czy bez, chociaż ja widzę sens.
że tak spytam, no i co z tego?
Więc ja się spytam, po co używasz takiego języka, zamiast c/c++, w którym nie miałbyś z tym takich problemów?
Czemu używasz takiej dziwnej metody wczytywania liczb w swoim języku - nie masz tam innych. Nie pytaj bo ja nie znam twojego języka [programowania].
Używam C# bo od niego zacząłem naukę i jest dla mnie trochę wygodniejszy. Czemu tak wczytuję dane? Tak znalazłem na forum: http://213.192.104.217/phpBB3-spoj-pl-backup/viewtopic.php?f=10&t=12087 Ale że ma to tutaj aż takie znaczenie? Echh...
Każdy język ma swoje wady i zalety. Wyrażenia LINQ w C# mają swoją moc.
Z perspektywy spoja C++ jest szybszy i bardziej popularny.
Z perspektywy rynku pracy wciąż króluje Java.
Jednak po 5 latach pracy z .NET muszę powiedzieć że Microsoft wciąż za wolno adaptuje się do dynamicznego rynku wytwarzania oprogramowania i praktycznie każdy ich produkt można zastąpić lepszym i zazwyczaj tańszym rozwiązaniem. Jednak tutaj nie czas i miejsce by o tym pisać.
Może:
Napisałem wcześniej, że: "Może....", ale to twój wybór, twoja decyzja ..[i twoja flustarcja, że coś nie ma sensu ]
PS
Nie wiem, czy w twoim znalezisku, są podane najlepsze metody wczytywania i to co ja tam napisałem to tylko taka moja łatka, wymyślona, przy analogicznych problemach z wczytywaniem w innych językach, więc nie mam pojęcia, czy jest najlepsza. Czy naprawdę, nie ma[sz] innych, lepszych [np papierowych, książkowych, podręcznbikowych] źródeł nauki i wyszukiwania rozwiązań problemów w c# ? W necie, podpowiedzi, nie zawsze muszą być najlepsze, wynikające z chęci pomocy, i nie zawsze optymalne.
Poczytaj [poszukaj] o metodzie Trim().
Niestety nie znam nic do nauki języka c#, ale nauka programowania to też niestety czytanie dużo teorii i nie tylko nauka języka programowania ale też nauka algorytmiki, matematyki, a nawet warto liznąć chociaż trochę j. angielskiego itd. Nauka na podstawie przykładów chyba nie jest najlepszą metodą nauki.
Ale do C#? Najfajniejsza jest "Rusz głową C#". Ale to książka o samym języku, nie znajdziesz w niej przykładów algorytmów bo C# nie jest do tego. Za to co rozdział piszę się projekt zazwyczaj jakiejś minigry lub prostego symulatora.
Przykłady algorytmów są oczywiście w "Algorytmice praktycznej" Stańczyka, ale tam jest C++ z użyciem makr.
Znam metodę Trim, próbowałem z nią we wczesnych fazach testu ale ją wywaliłem.
Mimo tego że teraz uwzględniłem ją "chyba dosyć dobrze" i mogę sobie dopisywać do mojego kodu tyle spacji, tabulatorów ile tylko zapragnę to... sędzia dalej nie zalicza mi tego zadania, o to kod:
https://ideone.com/Komf2X3
Nie mam pomysłu co jest jeszcze źle...
Kojarzę tą książkę "Rusz głową C#" ale jakoś bardzo się nie wczytywałem w nią. Bardziej szukałem opcji robienia zadań (tak jak na matmie) ale jak widzę to tutaj tylko jest taka możliwość. W C++ jest w prawdzie tego naprawdę mnóstwo, ale bardziej obecnie siedzę w C# więc na tym by mi najbardziej zależało.
No to jest książka: http://helion.pl/ksiazki/c-zadania-z-programowania-z-przykladowymi-rozwiazaniami-miroslaw-j-kubiak,cshzap.htm5
Ale zadania które tam są nie są bardziej ambitne niż te pokazane w przykładowym rozdziale (są bardziej praktyczne niż typowo algorytmiczne).
No cóż, podsumowując:
- Warto uczyć się różnych języków, a także języka[ów] publikowania w niektórych publikacjach, tzw pseudokodu.
- Jeżeli korzysta się z podpowiedzi na forum, to warto jednak uwzględniać i pokazywać w kolejnych kodach, że się wykorzystało te podpowiedzi, a w przeciwnym wypadku po co wstawiać kolejne? Po co podpowiadać?.
- Poczytaj sobie o sortowaniu leksykograficznym, jak na dzisiaj, mam już dosyć forum i twoich pytań o sens i bezsens.
- Naucz się lepiej testować i dobierać testy - test z zadania to minimalny test zerowy.
PS
AD 3
To tylko przypuszczenie, ja tego nie sprawdzałem.
1.Co do tego zadania ma pseudokod?
2.Przecież wstawiłem kod w którym wykorzystałem Twoją podpowiedź i mimo tego to nie pomogło.
Od paru postów nie pisze już o sensie/bezsensie zadania.
3.Inny sposób sortowania może sprawić że zadanie będzie "poprawne"? Nie przekroczyłem tutaj limitu czasowego więc myślę że rodzaj sortowania "chyba" nie ma tutaj znaczenia?
4.Testowałem różne kombinacje liczb i dla każdych testów program działał.
Z punktu widzenia SPOJa warte uwagi są C i C++ i pod te języki pomyślane są zadania (z nielicznymi wyjątkami jak BF). Oczywiście nikt nikomu nie broni używać np. Pythona, ale w wielu przypadkach jest to bardzo trudne a nawet niewykonalne ze względu na limity czasowe. Sam próbowałem kiedyś robić zadania w Bashu - podołałem aż jednemu i zrezygnowałem z tego chorego pomysłu
Jeżeli ktoś chce nauczyć się języka to polecam inne metody niż SPOJa. Za najlepszą uważam realizowanie własnych projektów. Najprościej jest chyba zacząć od gier komputerowych - każdy wie jak powinny wyglądać Saper albo Pacman, zaś wymyślanie użytecznych aplikacji dla księgowych, bibliotekarzy i wojska to nieco większe wyzwanie
C# również nie polecam na SPOJu, ale oczywiście co kto lubi.
PS
Właśnie dowiedziałem się, że na SPOJu można pisać w assemblerze i Octave (czyli de facto Matlab został dodany do SPOJa). Asmy wszelakie rozumiem - w sumie to nawet ciekawe doświadczenie napisać bardziej złożony program w assemblerze. Niemniej podejrzewam, że będzie sporo problemów z uzyskaniem pomocy na forum i z wczytywaniem danych...
Osobom, które na SPOJu będą uczyły się Octave szczerze współczuję. Sortowanie liczb i analiza dostaw pizzy na obszarze Bitocji wykonana w Octave jest po prostu stratą czasu bo nie do tego służy ta technologia. Osoby, które zamiast prowadzić obliczenia numeryczne i ich wizualizacje (nie wiem... metoda Rungego-Kutty czwartego rzędu, równania Lotki-Volterry, modele SIR, metoda Hartree-Focka czy kultowy MES) będą trzaskały BFSy w rzeczywistości nie nauczą się Octave. Podobnie ma się sytuacja z Bashem, Perlem, a jak sądzę, również z Pythonem, Javą i C#.
Mówię to z perspektywy osoby, która z wykształcenia jest inżynierem technologii chemicznej, a lwią część kodzenia (C++) opanowała na SPOJu. Na pierwszej rozmowie o pracę (C++) dowiedziałem się, że z algorytmami jest u mnie ok, gorzej z C++ i ogólnie programowaniem, bo i po co komuś na SPOJu konstruktory kopiujące, dziedziczenie, metody wirtualne, listy inicjalizacyjne, programowanie zwinne, wzorce projektowe, asercje, obsługa wyjątków, SOLID czy szablony? Wiele z tych rzeczy można wprowadzić do rozwiązywania zadań, ale będzie to tak sztuczne, że nic się z tego nie wyniesie. Przykładowo SPOJ przyjmuje pojedyncze pliki, co przeczy podstawowym zasadom kodzenia obiektowego.
Słowem: zalecam pamiętać o wadach i zaletach języków oraz SPOJa, a w związku z tym dobrze dobierać język do danego zadania. Jednocześnie zaznaczam, że niniejszy wpis jest wyłącznie moją opinią wyrobioną na podstawie moich doświadczeń i mojej wiedzy. Jeżeli ktoś uważa, że programowanie poza SPOJem jest beee albo widzi inne zastosowania GNU Octave, zaś Python i SPOJ tworzą dla niego doskonałe połączenie to proszę bardzo
Z punktu widzenia SPOJ'a nie ma gorszych czy lepszych języków. To problemsetterzy przygotowują zadania, testy, limity, a przecież powszechnie wiadomo jakiego my najczęściej używamy języka [prawie zawsze]. Więc jeżeli problemsetter postanowi, że zadanie/a można rozwiązać tylko w jednym [czy dwu ...] wybranych językach, to tak będzie i testy i limity będą dostosowane do rozwiązań "wzorcowych" w tym wybranym języku.
Nauka języka jest trudna, ale jeszcze trudniejsze jest nauczenie się prowadzenie konwersacji z komputerem w tym języku na ciekawe tematy. Owszem, można uczyć się języka korzystając ze SPOJ'a, ale lepiej znać już podstawy języka, a na SPOJ'u uczyć się algorytmiki a przy okazji utrwalać i szlifować znajomość języka.
Programowanie OBIEKTOWE
- Czy naprawdę, jednoplikowość kodu jest zaprzeczeniem programowania obiektowego?
- Czy na SPOJ'u używasz pojedyńczego pliku?
- SPOJ nie zabrania programowania obiektowego, i to tylko twoja sprawa, czy będzie to sztuczne i czy coś z tego wyniesiesz czy nie. Jeżeli chcesz uczyć się obiektowości, możesz spokojnie robić to na SPOJ'u i nawet jeżeli na początku twoje programy będą sztuczne, to napewno i tak z takich prób dużo wyniesiesz.
- Oczywiście SPOJ nie jest doskonały, ma wiele wad, ale przecież wiele też umożliwia i [ciągle] jest rozwijany i udoskonalany/poprawiany.
PS
Warto znać więcej niż tylko jeden język, a w tym skryptowe. Więc bash jest jak najbardziej ok [- chyba zrobiłem w nim więcej niż jedno zadanie, jako kolejne AC w "obcym" języku]