|
|
| (49 intermediate revisions by one user not shown) |
| Line 1: |
Line 1: |
| − | {{#def:pathwaySource|{{{source|}}}}} | + | {{Volatile:Pathway/Metabolic|{{{source|}}}|{{#replace:{{#trimex:{{{list|}}}}}|&&|__}}|0|{{PAGENAME}}}} |
| − | {{#def:pathwayPosition|{{#if:{{{position|}}}|{{{position}}}|}}}} | + | |
| − | | + | |
| − | {{#lua:
| + | |
| − | local list = {};
| + | |
| − | ---Set the first line
| + | |
| − | local line = stdin:match("([^\n]+)");
| + | |
| − | print(line);
| + | |
| − | for v in string.gmatch(line, "(%d%d?)") do
| + | |
| − | table.add(list,v);
| + | |
| − | end
| + | |
| − | ---From the second line, leave connected positions only
| + | |
| − | for line in stdin:gmatch("([^\n]+)") do
| + | |
| − | print("\n" .. line .. "\n");
| + | |
| − | if (string.sub(line,1,1) == 'R') then
| + | |
| − | line = string.sub(line,2);
| + | |
| − | local map = {};
| + | |
| − | for k, v in string.gmatch(line, "(%d%d?) (%d%d?) %d?%d? ?;") do
| + | |
| − | map[v] = k;
| + | |
| − | print(v .. "-" .. k .. " ");
| + | |
| − | end
| + | |
| − | for k, v in pairs(list) do
| + | |
| − | if (map[v] == nil) then
| + | |
| − | table.remove(list,k);
| + | |
| − | else
| + | |
| − | list[k] = map[v];
| + | |
| − | end
| + | |
| − | end
| + | |
| − | else
| + | |
| − | local map = {};
| + | |
| − | for k, v in string.gmatch(line, "(%d%d?) (%d%d?) %d?%d? ?;") do
| + | |
| − | map[k] = v;
| + | |
| − | print(k .. "-" .. v .. " ");
| + | |
| − | end
| + | |
| − | for k, v in pairs(list) do
| + | |
| − | if (map[v] == nil) then
| + | |
| − | table.remove(list,k);
| + | |
| − | else
| + | |
| − | list[k] = map[v];
| + | |
| − | end
| + | |
| − | end
| + | |
| − | end
| + | |
| − | end
| + | |
| − | table.sort(list);
| + | |
| − | for i,v in ipairs(list)
| + | |
| − | do print(v) end
| + | |
| − | | 1 2 3 4 5 6 7 8 | + | |
| − | {{#repeat:Pathway/Mapping|1|{{#cdr:{{{list}}}|&&}}|&&}}
| + | |
| − | }} | + | |