• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ile parzystych

Object Storage Arubacloud
0 głosów
328 wizyt
pytanie zadane 18 marca 2018 w C i C++ przez Undisputed Gaduła (3,040 p.)

Witajcie.
Rozwiązuję zadania z programowania i trafiłem na pewien problem.
Otóż tu jest polecenie:
http://solve.edu.pl/tasks/view/45

A tu moje rozwiązanie:
 

#include <iostream>
using namespace std;

int main() {
	int ile, liczba, licznik=0;
	cin >> ile;
	for(int i=0; i<ile; i++)
	{
		cin >> liczba;
		if(liczba%2==0)
		{
			licznik++;
		}
	}
	cout << licznik;
	return 0;
}

Jednak sędzia pisze, że przekroczono limit czasu. Także jak przyspieszyć działanie programu?
Z góry dziękuję za wskazówki i porady.

2 odpowiedzi

+2 głosów
odpowiedź 18 marca 2018 przez Jedras Maniak (54,860 p.)
wybrane 18 marca 2018 przez Undisputed
 
Najlepsza
Zgaduję, że użycie scanf/printf powinno pomóc. Ewentualnie sprawdzaj sobie parzystość liczby z użyciem operatorów bitowych jak dalej nie będzie przechodziło.
komentarz 18 marca 2018 przez Undisputed Gaduła (3,040 p.)
Scanf i printf podziałało. Możesz wytłumaczyć dlaczego?
1
komentarz 18 marca 2018 przez Patrycjerz Mędrzec (192,320 p.)
Strumienie biblioteki standardowej C++ są bardziej skomplikowane niż te z C. Mniej kodu do wykonania — szybsza praca.
komentarz 19 marca 2018 przez mokrowski Mędrzec (155,460 p.)
Swoją drogą żeby sędzia promował takie praktyki.. eh...
komentarz 19 marca 2018 przez Beginer Pasjonat (22,110 p.)
Sędzia to tylko człowiek - nie jest nieomylny. Też ma swoje słabości i wady, może mieć lepszy lub gorszy dzień.

Eh Mokrowski !
1
komentarz 19 marca 2018 przez Qwerty96 Stary wyjadacz (13,580 p.)

Prawdopodobnie wywołanie

std::ios_base::sync_with_stdio(false);

też by rozwiązało problem.

komentarz 19 marca 2018 przez mokrowski Mędrzec (155,460 p.)
I jeszcze std:cin.tie(0);
+2 głosów
odpowiedź 18 marca 2018 przez Patrycjerz Mędrzec (192,320 p.)
edycja 18 marca 2018 przez Patrycjerz

Spróbuj używać mniej wywołań operatora >> strumienia wejścia. Wczytaj liczby "na raz" do jakiegoś kontenera.

std::vector<int> vector;

std::istream_iterator<int> begin(std::cin);
std::istream_iterator<int> end;

std::copy(begin, end, std::back_inserter(vector));

std::cout << vector.size();

Oczywiście jest to jedynie moje przypuszczenie. Nie wiem, czy ci to pomoże, ale warto spróbować

komentarz 18 marca 2018 przez Undisputed Gaduła (3,040 p.)
Odpowiedź kolegi okazała się pomocna, ale dziękuję za odpowiedź.

Podobne pytania

0 głosów
3 odpowiedzi 4,826 wizyt
pytanie zadane 28 grudnia 2016 w C i C++ przez szejmys Nowicjusz (160 p.)
0 głosów
4 odpowiedzi 2,119 wizyt
pytanie zadane 22 kwietnia 2018 w C i C++ przez kubal0101 Początkujący (280 p.)
0 głosów
1 odpowiedź 6,100 wizyt
pytanie zadane 7 lutego 2017 w JavaScript przez ilendil Początkujący (250 p.)

92,563 zapytań

141,416 odpowiedzi

319,596 komentarzy

61,948 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...