Donné
- une matrice
ade caractères deu=" ╶╺╵└┕╹┖┗╴─╼┘┴┶┚┸┺╸╾━┙┵┷┛┹┻╷┌┍│├┝╿┞┡┐┬┮┤┼┾┦╀╄┑┭┯┥┽┿┩╃╇╻┎┏╽┟┢┃┠┣┒┰┲┧╁╆┨╂╊┓┱┳┪╅╈┫╉╋" - les coordonnées d'une sous - matrice comme
x,y,w,h(gauche, haut, largeur> 1, la hauteur> 1) - une épaisseur
tde 1 (comme dans┌) ou 2 (comme dans┏)
rendre une bordure intérieure pour la sous-matrice avec l'épaisseur spécifiée, en tenant compte des lignes existantes.
x=4;y=1;w=2;h=3;t=2;
a=[' ┌───┐',
'┌┼┐ │',
'│└┼──┘',
'└─┘ ']
// output
r=[' ┌───┐',
'┌┼┐ ┏┪',
'│└┼─╂┨',
'└─┘ ┗┛']
Lors du remplacement d'un fragment de ligne, la nouvelle épaisseur doit être la plus élevée de l'ancienne épaisseur et t.
On ne parle pas de l' analyse d' entrée ou de trouver la complexité de Kolmogorov d'Unicode, de sorte que vous pouvez supposer a, u, x, y, w, h, tsont à votre disposition en tant que variables. En outre, vous pouvez placer le résultat dans une variable rau lieu de le renvoyer ou de le produire, tant qu'il rest du même type que a.
Si votre langage vous oblige à mettre du code dans des fonctions (C, Java, Haskell, etc.) et que votre solution consiste en une seule fonction, vous pouvez omettre l'en-tête et le pied de page de la fonction.
Test plus grand:
x=4;y=1;w=24;h=4;t=1;
a=['┏┱─────┐ ┌┐ ┎──┲━┓',
'┠╂─────┘ ││ ┃ ┗━┛',
'┃┃ ││ ┃ ',
'┠╂──┲━━┓ ┏━━━━┓ ││ ┌╂┰┐ ',
'┃┃ ┗━━┩ ┃ ┃ └╆━┓ └╂┸┘ ',
'┃┃ │ ┃ ┃ ┃ ┃ ┃ ',
'┗┹─────┘ ┗━━━━┛ ┗━┛ ╹ ']
// output
r=['┏┱─────┐ ┌┐ ┎──┲━┓',
'┠╂──┬──┴─────────┼┼─────╂──╄━┛',
'┃┃ │ ││ ┃ │ ',
'┠╂──╆━━┓ ┏━━━━┓ ││ ┌╂┰┐│ ',
'┃┃ ┗━━╃──╂────╂─┴╆━┱──┴╂┸┴┘ ',
'┃┃ │ ┃ ┃ ┃ ┃ ┃ ',
'┗┹─────┘ ┗━━━━┛ ┗━┛ ╹ ']
0 <= x < x + w < width(a)et0 <= y < y + h < height(a)?