infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Nezbeda Harald din Februarie 17, 2008, 22:06:48



Titlul: Am nevoie de ajutorul vostru
Scris de: Nezbeda Harald din Februarie 17, 2008, 22:06:48
Am o problema. Am scris acest program:

Cod:
program trains;
type vect =  record
               v: array [0..32,1..16] of integer;
               lid: array [0..32] of integer;
               end;
var A : vect;
    id,idst,iddr,pst,pdr,i,j,n,m,pos,min : integer;
    s : string[1];
    f,g : text;
begin
assign(f,'trains.in');
reset(f);
assign(g,'trains.out');
rewrite(g);


readln(f,n,m);

for i := 1 to n-1 do
read(f,A.v[0,i]);

readln(f,A.v[0,n]);

A.lid[0] := n;



for j := 1 to m do begin
read(f,s);


if (s='S') or (s='s') then begin
                readln(f,id,pos,iddr);
                A.lid[iddr] := A.lid[id]-pos;
                for i := 1 to A.lid[iddr] do
                A.v[iddr,i] := A.v[id,pos+i];
                A.lid[id] := pos;
                end
else if (s='J') or (s='j') then begin
                readln(f,idst,iddr);
                for i := 1 to A.lid[iddr] do
                A.v[idst,i+A.lid[idst]] := A.v[iddr,i];
                A.lid[idst] := A.lid[idst] + A.lid[iddr];
                end
else if (s='Q') or (s='q') then begin
                readln(f,id,pst,pdr);
                min := 32000;
                for i := pst to pdr do
                if min>A.v[id,i] then min := A.v[id,i];
                writeln(g,min);
                end;


end;


close(f);
close(g);

end.


fisierul de intare contine
Cod:
10 14
1 2 3 4 5 6 7 8 9 10
S 0 5 1
Q 1 1 3
J 1 0
Q 1 1 1
Q 1 2 2
Q 1 3 3
Q 1 4 4
Q 1 5 5
Q 1 6 6
Q 1 7 7
Q 1 8 8
Q 1 9 9
Q 1 10 10
Q 1 4 6

(daca ati observat este problema Trains de la Concursul campion);

Daca ruolez programul sub windows nu apar probleme, insa unul dintre administratori mia spus ca programul meu nu scoate la ei pe server decat fisiere goale. De ce? (imi cer scuze daca am incalcat vreo regula prin postarea algoritmului)