1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | open Array;; open String;; open Printf;; let n1 = read_int();; let seq1 = read_line();; let n2 = read_int();; let seq2 = read_line();; let matriz = Array.make_matrix (n1+2) (n2+2) 0;; let s1=String.copy seq1;; let s2=String.copy seq2;; let detvalor i j s1 s2 matriz= if i = 0 || j = 0 then 0 else if (s1.[i-1] = s2.[j-1]) then (1 + matriz.(i-1).(j-1)) else 0;; for i=0 to n2 do for j=0 to n1 do matriz.(i).(j) <- (detvalor i j s1 s2 matriz) done; done;; let maximo = ref 0;; let pos1 = ref 0;; let pos2 = ref 0;; for i=0 to n2 do for j=0 to n1 do if !maximo < matriz.(i).(j) then begin maximo:=matriz.(i).(j); pos1:=i; pos2:=j end done; done;; let rec detposinicial pos1 pos2 = if matriz.(pos1).(pos2) = 1 then (pos1, pos2) else (detposinicial (pos1-1) (pos2-1));; let inicio = (detposinicial !pos1 !pos2);; let primeiro (x, _) = x;; let segundo (_, x) = x;; let rec juntarcaracteres s1 pos1i pos2i pos1 pos2 = (String.make 1 s1.[pos1i-1]) ^ (juntarcaracteres s1 (pos1i+1) (pos2i+1) (pos1) (pos2));; printf ("%s\n") (juntarcaracteres s1 (primeiro inicio) (segundo inicio) pos1 pos2);; |
b3BlbiBBcnJheTs7Cm9wZW4gU3RyaW5nOzsKb3BlbiBQcmludGY7OwoKbGV0IG4xID0gcmVhZF9pbnQoKTs7CmxldCBzZXExID0gcmVhZF9saW5lKCk7OwpsZXQgbjIgPSByZWFkX2ludCgpOzsKbGV0IHNlcTIgPSByZWFkX2xpbmUoKTs7CmxldCBtYXRyaXogPSBBcnJheS5tYWtlX21hdHJpeCAobjErMikgKG4yKzIpIDA7OwpsZXQgczE9U3RyaW5nLmNvcHkgc2VxMTs7CmxldCBzMj1TdHJpbmcuY29weSBzZXEyOzsKCmxldCBkZXR2YWxvciBpIGogczEgczIgbWF0cml6PQogIGlmIGkgPSAwIHx8IGogPSAwIHRoZW4gMCBlbHNlIGlmIChzMS5baS0xXSA9IHMyLltqLTFdKSB0aGVuICgxICsgbWF0cml6LihpLTEpLihqLTEpKSBlbHNlIDA7OwoKZm9yIGk9MCB0byBuMiBkbyAKICBmb3Igaj0wIHRvIG4xIGRvCiAgICBtYXRyaXouKGkpLihqKSA8LSAoZGV0dmFsb3IgaSBqIHMxIHMyIG1hdHJpeikKICBkb25lOwpkb25lOzsKCmxldCBtYXhpbW8gPSByZWYgMDs7CmxldCBwb3MxID0gcmVmIDA7OwpsZXQgcG9zMiA9IHJlZiAwOzsKCmZvciBpPTAgdG8gbjIgZG8KZm9yIGo9MCB0byBuMSBkbwppZiAhbWF4aW1vIDwgbWF0cml6LihpKS4oaikgdGhlbgogIGJlZ2luCiAgICBtYXhpbW86PW1hdHJpei4oaSkuKGopOwogICAgcG9zMTo9aTsKICAgIHBvczI6PWoKICBlbmQKZG9uZTsKZG9uZTs7CgpsZXQgcmVjIGRldHBvc2luaWNpYWwgcG9zMSBwb3MyID0KICBpZiBtYXRyaXouKHBvczEpLihwb3MyKSA9IDEgdGhlbiAocG9zMSwgcG9zMikKICBlbHNlIChkZXRwb3NpbmljaWFsIChwb3MxLTEpIChwb3MyLTEpKTs7CgpsZXQgaW5pY2lvID0gKGRldHBvc2luaWNpYWwgIXBvczEgIXBvczIpOzsKbGV0IHByaW1laXJvICh4LCBfKSA9IHg7OwpsZXQgc2VndW5kbyAoXywgeCkgPSB4OzsKCmxldCByZWMganVudGFyY2FyYWN0ZXJlcyBzMSBwb3MxaSBwb3MyaSBwb3MxIHBvczIgPQogIChTdHJpbmcubWFrZSAxIHMxLltwb3MxaS0xXSkgXiAoanVudGFyY2FyYWN0ZXJlcyBzMSAocG9zMWkrMSkgKHBvczJpKzEpIChwb3MxKSAocG9zMikpOzsKCnByaW50ZiAoIiVzXG4iKSAoanVudGFyY2FyYWN0ZXJlcyBzMSAocHJpbWVpcm8gaW5pY2lvKSAoc2VndW5kbyBpbmljaW8pIHBvczEgcG9zMik7Ow==
-
upload with new input
-
result: Runtime error time: 0.01s memory: 2780 kB signal: -1
open Array;; open String;; open Printf;; let n1 = 61;; let seq1 = "AACGTTGAGATTGAAGTCCGTGCATGGCCCGTGAGAGTCACTTTCGGATTAGCTGTGAATG";; let n2 = 45;; let seq2 = "AACATTGCGTAATGGCCGTAGGCCCGTGAGAGTCACTTTCTTGAT";; let matriz = Array.make_matrix (n1+1) (n2+1) 0;; let s1=String.copy seq1;; let s2=String.copy seq2;; let detvalor i j s1 s2 matriz= if i = 0 || j = 0 then 0 else if (s1.[i-1] = s2.[j-1]) then (1 + matriz.(i-1).(j-1)) else 0;; for i=0 to n2 do for j=0 to n1 do matriz.(i).(j) <- (detvalor i j s1 s2 matriz) done; done;; let maximo = ref 0;; let pos1 = ref 0;; let pos2 = ref 0;; for i=0 to n2 do for j=0 to n1 do if !maximo < matriz.(i).(j) then begin maximo:=matriz.(i).(j); pos1:=i; pos2:=j end done; done;; let rec detposinicial pos1 pos2 = if matriz.(pos1).(pos2) = 1 then (pos1, pos2) else (detposinicial (pos1-1) (pos2-1));; let inicio = (detposinicial !pos1 !pos2);; let primeiro (x, _) = x;; let segundo (_, x) = x;; let rec juntarcaracteres s1 pos1i pos2i pos1 pos2 = (String.make 1 s1.[pos1i-1]) ^ (juntarcaracteres s1 (pos1i+1) (pos2i+1) (pos1) (pos2));; printf ("%s\n") (juntarcaracteres s1 (primeiro inicio) (segundo inicio) pos1 pos2);;Fatal error: exception Failure("int_of_string") -
result: Runtime error time: 0.02s memory: 2780 kB signal: -1
Fatal error: exception End_of_file



