testcase generator για ΠΔΠ-33

Γενικά θέματα για το διαγωνισμό. Ερωτήσεις, προτάσεις και ό,τι άλλο ταιριάζει.
Απάντηση
xdv
Δημοσιεύσεις: 6
Εγγραφή: Κυρ Δεκ 02, 2018 9:52 pm

testcase generator για ΠΔΠ-33

Δημοσίευση από 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
αυτό θα σας βοηθήσει στη χρονομέτρηση του αλγορίθμου σας. Προσοχή! Εδώ εξετάζεται η απλή περίπτωση στην οποία οι λογαριασμοί είναι μονοψήφιοι.
Δολ.Χαρ.
alexakos
Δημοσιεύσεις: 5
Εγγραφή: Δευ Οκτ 19, 2020 1:40 pm

Re: testcase generator για ΠΔΠ-33

Δημοσίευση από alexakos »

Αν θέλετε, δοκιμάστε και τον ακόλουθο testcase generator:
[Pastebin]https://pastebin.com/d4rm6sPg[/Pastebin]
Δίνουμε στη σταθερά N το πλήθος (περίπου) των συναλλαγών που θέλουμε να παράξει.
xdv
Δημοσιεύσεις: 6
Εγγραφή: Κυρ Δεκ 02, 2018 9:52 pm

Re: testcase generator για ΠΔΠ-33

Δημοσίευση από 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 δισεκατομμύριο.
Δολ.Χαρ.
Απάντηση