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

Problem z zadaniem, prawdopodobny błąd w treści lub w testach sprawdzających.

Object Storage Arubacloud
0 głosów
264 wizyt
pytanie zadane 23 lutego 2022 w C i C++ przez polandonion Mądrala (7,040 p.)

Witam, chciałbym poprosić o pomoc w zadaniu; zrobiłem zadanie domowe, lecz robot sprawdzający daje tylko 30%. Mam prośbę do osób, które znają się na programowaniu dosyć długo, algorytmikę znają bardzo dobrze, może ja robię jakiś błąd?

Treść zadania:

Niżej zamieszczam kod źródłowy mojej pracy:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n; cin>>n;
	int *tab=new int [n];
	for(int i=0; i<n; i++)
		cin>>tab[i];
	sort(tab,tab+n);
	int a=tab[0],b=tab[1],c=tab[2];
	int d=tab[n-3],e=tab[n-2],f=tab[n-1];
	cout<<max(a*b*f,d*e*f);
	delete [] tab;
}

W razie jakby ktoś nie rozumiał linii wypisującej wynik, podpowiem, iż gdy posortuję tablicę, to na indeksach początkowych mogą znaleźć się liczby ujemne, a co za tym idzie wymnożenie dwóch największych liczb ujemnych liczb oraz jednej największej dodatniej z całego zbioru uczyni iloczyn największym. Kiedy nie mamy liczb ujemnych wymnażamy 3 ostatnie (największe po posortowaniu) liczby.

Na końcu daję Wam to, co robot sprawdzający wypisuje po otrzymaniu mojego kodu:

1 odpowiedź

0 głosów
odpowiedź 23 lutego 2022 przez Whistleroosh Maniak (56,980 p.)

Sprawdź co Twój program wypisuje dla testu

3
10000 10000 10000

i zastanów się dlaczego tak się dzieje

komentarz 23 lutego 2022 przez polandonion Mądrala (7,040 p.)
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n; cin>>n;
	int *tab=new int [n];
	for(int i=0; i<n; i++)
		cin>>tab[i];
	sort(tab,tab+n);
	int a=tab[0],b=tab[1],c=tab[2];
	int d=tab[n-3],e=tab[n-2],f=tab[n-1];
	unsigned long long wy1=a*b*f,wy2=d*e*f;
	cout<<(wy1>=wy2 ? wy1 : wy2);
	//ewentualnie cout<<max(wy1,wy2);
	delete [] tab;
}

dla testu 3 10000 10000 10000

wypisuje mi największą wartość zakresu unsigned long long:

18446744072982171648

komentarz 23 lutego 2022 przez Whistleroosh Maniak (56,980 p.)
To chyba nie do końca jest maks unsigend long longa. Ale jak myslisz dlaczego w tym poprzednim programie wynik wychodzi ujemny?
komentarz 23 lutego 2022 przez polandonion Mądrala (7,040 p.)
wartości tablicy są od -10^4 do 10^4, czyli tablica w int jest ok, zastanawiam sie tylko nad tymi zmiennymi od a do f czy nie powinny byc w unsigned long long u
komentarz 23 lutego 2022 przez Whistleroosh Maniak (56,980 p.)
Dobrze myślisz, bo teraz zmienne a...f są intami czyli iloczyn a*b*f też jest intem, a wartość 10^12 nie zmiesci się w int

Podobne pytania

0 głosów
1 odpowiedź 114 wizyt
pytanie zadane 29 października 2016 w C i C++ przez Piotr Ponikwia Początkujący (330 p.)
0 głosów
0 odpowiedzi 209 wizyt
pytanie zadane 24 lipca 2020 w C i C++ przez Jakub Chomicz 1 Użytkownik (840 p.)
0 głosów
1 odpowiedź 193 wizyt
pytanie zadane 29 września 2019 w C i C++ przez Jakub Chomicz 1 Użytkownik (840 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...