• 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.

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
311 wizyt
pytanie zadane 23 lutego 2022 w C i C++ przez polandonion Dyskutant (7,560 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 (57,360 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 Dyskutant (7,560 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 (57,360 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 Dyskutant (7,560 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 (57,360 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ź 134 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 293 wizyt
pytanie zadane 24 lipca 2020 w C i C++ przez Jakub Chomicz 1 Użytkownik (840 p.)
0 głosów
1 odpowiedź 236 wizyt
pytanie zadane 29 września 2019 w C i C++ przez Jakub Chomicz 1 Użytkownik (840 p.)

93,187 zapytań

142,203 odpowiedzi

322,017 komentarzy

62,513 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2365p. - dia-Chann
  2. 2326p. - Łukasz Piwowar
  3. 2315p. - Łukasz Eckert
  4. 2301p. - CC PL
  5. 2269p. - Tomasz Bielak
  6. 2235p. - Łukasz Siedlecki
  7. 2232p. - rucin93
  8. 2169p. - Marcin Putra
  9. 2164p. - Adrian Wieprzkowicz
  10. 2006p. - Michal Drewniak
  11. 1901p. - Mikbac
  12. 1806p. - Dawid128
  13. 1744p. - rafalszastok
  14. 1734p. - Anonim 3619784
  15. 1487p. - Michał Telesz
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...