Σελίδα 1 από 1
testcase generator για ΠΔΠ-33
Δημοσιεύτηκε: Τρί Οκτ 27, 2020 2:49 pm
από xdv
Κώδικας: Επιλογή όλων
uses sysutils;
var i,n,x:longint;
dwq:char;
a:integer;
f:text;
begin
writeln('we have 8 accounts: (1,2,3,4,5,6,7,8)');
write(timetostr(time),' Give me N: 20<N<1.000.000 ');
readln(n);
assign(f,'bankacc.in') ;
rewrite(f);
writeln(f,n);
for i:=1 to n do begin
if (i mod 3)=0 then dwq:='d';
if (i mod 3)=1 then dwq:='w';
if (i mod 3)=2 then dwq:='q';
if i<10 then dwq:='d';
a:=1+(i mod 8);
x:=10+(i mod 1000);if i<10 then x:=10000;
if dwq='d' then writeln(f,dwq,' ',a,' ',x);
if dwq='w' then writeln(f,dwq,' ',a,' ',x);
if dwq='q' then writeln(f,dwq,' ',a);
end;
close(f);
writeln(timetostr(time),' file ok');
end.
το παραπάνω πρόγραμμα είναι γραμμένο σε pascal και αν το τρέξετε θα πάρετε αρχεία σαν το παρακάτω:
Κώδικας: Επιλογή όλων
20
d 2 10000
d 3 10000
d 4 10000
d 5 10000
d 6 10000
d 7 10000
d 8 10000
d 1 10000
d 2 10000
w 3 20
q 4
d 5 22
w 6 23
q 7
d 8 25
w 1 26
q 2
d 3 28
w 4 29
q 5
αυτό θα σας βοηθήσει στη χρονομέτρηση του αλγορίθμου σας. Προσοχή! Εδώ εξετάζεται η απλή περίπτωση στην οποία οι λογαριασμοί είναι μονοψήφιοι.
Re: testcase generator για ΠΔΠ-33
Δημοσιεύτηκε: Τετ Οκτ 28, 2020 2:07 pm
από alexakos
Αν θέλετε, δοκιμάστε και τον ακόλουθο testcase generator:
[Pastebin]
https://pastebin.com/d4rm6sPg[/Pastebin]
Δίνουμε στη σταθερά N το πλήθος (περίπου) των συναλλαγών που θέλουμε να παράξει.
Re: testcase generator για ΠΔΠ-33
Δημοσιεύτηκε: Πέμ Νοέμ 05, 2020 5:40 pm
από xdv
έτρεξα τον κώδικα σε C και πήρα ένα αρχείο με 124863 γραμμές. Παρακάτω είναι οι πρώτες 10 γραμμές του αρχείου:
Κώδικας: Επιλογή όλων
-1208580161
087945 114768474
q 1
w 704087945 835000363
d 141124135 835000363
q 704087945
d 468904144 1687364675
q 141124135
d 612827678 1405416773
q 468904144
Υπάρχει πρόβλημα στις δύο πρώτες γραμμές. Θα έπρεπε να φαίνεται ο αριθμός των συναλλαγών και όχι ένα αρνητικό νούμερο.Επίσης δεν τηρείται ο περιορισμός για το Χ που δεν πρέπει να ξεπερνά το 1 δισεκατομμύριο.