poprawny wynik, a zła odpowiedź

0

Napisałem program, wynik zwraca poprawny. Wysłałem go na platforme do sprawdzenia i dostałem odpowiedź : "zła odpowiedź".

Link do zadania http://main.edu.pl/pl/user.phtml?op=showtask&task=plo&con=PAS

program plot;
type dzialki=1..10;
var
d:dzialki;
i,a,n,s,min:integer;
j:array[1..1000] of integer;
wynik:array[1..1000] of integer;
begin

readln(d);
min:=0;

for i:=1 to d do
BEGIN

while not eoln do

begin
a:=a+1;
read(j[a]);
s:=s+j[a];
end;

s:=s-j[1];

wynik[i]:=s;

if wynik[i] > min then min:=wynik[i] else min:=wynik[i];

s:=0;
a:=0;
readln;

END;

writeln(min);

readln;
end.

Gdzie zrobiłem błąd? Proszę o pomoc. Pozdrawiam

1
  1. WTF? Po co ci tam jakieś while eoln skoro masz podane od razu ile jest zestawów danych i ile jest danych o_O
  2. Ty w ogóle rozumiesz to zadanie? Co to za tablice w ogóle? Gdzie ty tam coś chcesz tablicować?
  3. Co to za readln na końcu?

http://ideone.com/NbaE2

program plot;
 var
  i,j,n,d,suma,liczba:integer;
  min:longint;
 Begin
  readln(d);
  min:=100001; {o 1 wiecej niz maks}
  for i:=1 to d do
   begin
   read(n); 
   suma:=0;
    for j:=1 to n do 
     begin 
     read(liczba);
     suma:=suma+liczba;
     end;
   if suma < min then
    min:=suma;
   end;
 writeln(min);
 end.

edit: ciekawostka, jak można to zapisać w pythonie, który wszystkie te trywialne operacje (czytanie listy liczb, sumowanie, wybieranie minimum) ma zaimplementowane

import sys
print min([sum([int(x) for x in sys.stdin.readline().split()[1:]]) for j in range(int(raw_input()))])
0

o boże ale ja to zrobiłem na okrętkę aż mi wstyd.
1.no faktycznie, chciałem iść na łatwize zeby samo do konca lini sie sumowało a zrobiłem na około i tylko roboty wiecej to fakt
2.no chyba jednak troche rozumiem skoro mój alogrytm tez podaje poprawne wyniki ale przyznaje poszedłem zupełnie na około
3.ten readln to dla mnie żebym potem nie musiał kombinacji altF5 uzywac tylko wynik sie Od razu wyświetlał w konsoli
4.dzięki za pomoc i przepraszam za głupote pozdro!

edit: wrzuciłem ten programik Shaloma na platforme main.edu.pl i w odpowiedzi dostałem "Zła odpowiedź" wynik 50 pkt. Czemu nie 100? wie ktoś?

0

Ja wiem czemu. Specjalnie tak zrobiłem żebyś nie mógł wrzucić gotowca. Najpierw musisz ten kod zrozumieć, bez tego nie dasz rady go naprawić. Program który podałem nie zadziała dla przypadków skrajnych.

0

Ok udało się jest 100pkt, dzięki wielkie:D

kod:

program plot;
type dzialki=1..10;
type n1100=1..100;
type l=0..999;
var
d:dzialki;
n:n1100;
liczba:l;
i,j:integer;
min,suma:longint;
begin
read(d);
min:=99901;
for i:=1 to d do
begin
suma:=0;
read(n);
for j:=1 to n do
begin
read(liczba);
suma:=suma+liczba;
end;
if suma < min then min:= suma;
end;
writeln(min);
readln;
readln;
end.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.