Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program ExrF_ChangePolynom;
- var
- i, n, k: integer;
- p: uint64;
- index: array of uint64;
- buf: uint64;
- begin
- Assign(Input, 'input.txt');
- Assign(Output, 'output.txt');
- reset(Input);
- rewrite(output);
- readln(p, n);
- SetLength(index, n + 1);
- for i := 0 to n do begin
- Read(index[i]);
- index[i]:=index[i] mod p;
- end;
- for k := 1 to n do
- begin
- buf := index[k];
- for i := k downto 1 do
- begin
- if i = k then begin
- if -index[i - 1] * buf <0 then
- index[i] :=p-( index[i - 1] * buf )mod p
- else
- index[i]:= (-index[i - 1] * buf) mod p;
- end
- else
- begin
- if index[i] < buf * index[i - 1] then
- index[i] := p-(-(index[i] - buf * index[i - 1]))mod p
- else
- index[i]:= (index[i] - buf * index[i - 1]) mod p;
- end;
- // if index[i]<0 then
- // begin
- // index[i]:=p-(-index[i] mod p)
- // end
- // else index[i]:=index[i] mod p;
- //end;
- end;
- end;
- for i := n downto 0 do
- Writeln(index[i]);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement