Permisos UNIX


Submit solution

Points: 10
Time limit: 5.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
C#, Go, Java

Els permisos de lecture, escritura i execució sobre fitxers en sistemes UNIX-like són gestionats en tres classes: usuari, grup i altres.

Els fitxers són propietat d'un usuari i d'un grup, i s'especifiquen permisos per a les tres classes: propietari del fitxer, els usuaris del grup propietari del fitxer i la resta d'usuaris.

Quan un usuari tracta d'accedir a un fitxer, els permisos efectius que té sobre el fitxer es determinen en base a la primera classe en la qual encaixi.

Donats els permisos, i l'usuari i grup propietaris d'un fitxer, calcula els permisos efectius que tindrà un usuari determinat sobre un fitxer.

Input Format

A la primera línia venen els 9 permisos P, separats per espais en blanc, i l'usuari i grup propietaris.

A la segona línia ve l'usuari que tracta d'accedir al fitxer, i els 3 grups als que pertany.

Constraints

P = { - | r | w | x }

L'usuari pertany sempre a 3 grups.

Output Format

S'imprimiran els permisos efectius

Test Case 1

Input
r w x r - x r - - root root
alumne1 alumnes informatica dam
Output
r--

Test Case 2

Input
r w - r w - - - - root alumnes
alumne1 alumnes informatica asix
Output
rw-

Test Case 3

Input
r w x r - x r - - root root
alumne1 alumnes informatica dam
Output
r--

Test Case 4

Input
r w - r - - - - - alumne2 dam
alumne1 alumnes informatica asix
Output
---

Test Case 5

Input
r w x r w - r - - alumne3 asix
alumne2 alumnes informatica asix
Output
rw-

Test Case 6

Input
r w x r w - r - - alumne3 root
alumne3 root informatica asix
Output
rwx

Test Case 7

Input
r w x r w - r - - alumne3 root
alumne3 root informatica asix
Output
rwx

Test Case 8

Input
r w x r w x r - - root root
alumne3 root informatica asix
Output
rwx

Authorship: Gerard Falcó

CC BY-NC-SA 4.0