Skip to content

Commit d28db10

Browse files
committed
afegit problema G
1 parent f7a0f8e commit d28db10

File tree

2 files changed

+88
-2
lines changed

2 files changed

+88
-2
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package programame;
2+
3+
import java.util.HashSet;
4+
import java.util.Scanner;
5+
import java.util.Set;
6+
7+
8+
public class ProblemaG {
9+
10+
public static Set<String> llegeixDesenvolupadors(Scanner sc) {
11+
//el conjunt de tecnologies que tenen els desenvolupadors
12+
Set<String> tecDes = new HashSet<>();
13+
int D = sc.nextInt(); //llegeixo el nombre D de desenvolupadors
14+
sc.nextLine(); //netejo bufer després de llegir enter i abans del proper nextline
15+
16+
//recorrem cada linia (cada linia es un desenvolupador
17+
//seguit d ls seves habilitats)
18+
for (int i = 0; i < D; ++i) {
19+
String linia = sc.nextLine();
20+
String[] hd = linia.split(" "); //hd es habiliatt desenvolupador
21+
22+
//afegim les habilitats del desenvolupador al set
23+
//(ens despreocupem dels duplicats, el set ja se n'encarrega que no
24+
//n'hi hagin)
25+
for (int j = 1; j < hd.length; ++j)
26+
tecDes.add(hd[j]);
27+
}
28+
return tecDes;
29+
30+
}
31+
32+
public static void llegeixProjectes(Scanner sc, Set<String> tecDes) {
33+
int P = sc.nextInt(); //llegeixo el nombre P de projectes
34+
sc.nextLine();
35+
36+
//RECORRO ELS PROJECTES
37+
for (int i = 0; i < P; ++i) {
38+
39+
String linia = sc.nextLine();
40+
String[] hrp = linia.split(" "); //hrp es habilitats requerida pel projecte
41+
42+
//RECORRO LES HABILITATS REQUEREIDES PER CADA PROJECTE I SI ALGUN
43+
//PROJECTE VEIEM QUE ELS SEUS DESENVOLUPADORS FALLEN EN ALGUNA HAB
44+
//ILITAT PAREM I SORTIM DEL BUCLE SEGUENT:
45+
boolean projectePossible = true;
46+
for (int j = 1; j < hrp.length; ++j) {
47+
if(!(tecDes.contains(hrp[j]))) {
48+
System.out.println("IMPOSIBLE");
49+
projectePossible = false;
50+
break;
51+
}
52+
}
53+
if (projectePossible)
54+
System.out.println("POSIBLE");
55+
}
56+
}
57+
public static void main(String[] args) {
58+
Scanner sc = new Scanner(System.in);
59+
llegeixProjectes(sc, llegeixDesenvolupadors(sc));
60+
}
61+
}

README.md

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ https://github.com/blackcub3s/ProgramaMe/blob/fa4b0fc7bdeb88766656361667b9ddc89a
345345

346346
# 5. 2024 (Regional de València)
347347

348-
Aquests problemes pertanyen a la programaMe regional de València organitzada per IES Serra Perenxisa (Torrent, València). En aquesta hi vaig participar presencialment (els problemes dels apartats previs conformaven la preparació per aquesta competició). Vam aconseguir enviar correctament els problemes A, B i D (equip de 2) dins les dues hores que teniem per a pujar-ho al jutge online de la competició.
348+
Aquests problemes pertanyen a la programaMe regional de València organitzada per IES Serra Perenxisa (Torrent, València). En aquesta competició hi vaig participar presencialment amb un company en una aula de l'IES Abastos (els problemes dels apartats previs conformaven la preparació per aquesta competició). Vam aconseguir enviar correctament els problemes A, B i D (en equip de 2, el tercer integrant va faltar) dins les dues hores que teniem per a pujar-ho al jutge online de la competició.
349349

350350
## Problema A: Secuencia digna
351351

@@ -440,7 +440,32 @@ TO DO
440440

441441
## Problema G: Implementación de proyectos de software
442442

443-
TO DO
443+
El problema G l'he solucionat mitjançant un ```hashSet```. Per tenir eficiència computacional necessitem una estructura que guardi les habilitats dels desenvolupadors, eliminant-ne els repetits. També necessitem que pugui cercar de forma eficient cada una de les habilitats dels projectes, cosa que també pot fer el ```hashset```.
444+
445+
Aquest són els casos de prova públics:
446+
```
447+
5
448+
Alice FRONTEND BACKEND
449+
Bob DATABASE SECURITY
450+
Charlie FULLSTACK
451+
Diana FULLSTACK DATABASE
452+
Eva SECURITY
453+
3
454+
SistemaGestion FRONTEND BACKEND DATABASE
455+
WebSegura SECURITY DATABASE
456+
PlataformaEducativa FULLSTACK UI/UX
457+
458+
```
459+
460+
I la sortida correpsponent als mateixos:
461+
462+
```
463+
POSIBLE
464+
POSIBLE
465+
IMPOSIBLE
466+
```
467+
468+
NOTA: Aquesta versió funciona per als següents casos de prova públics. No s'ha testejat per al jutge online. Permet entrar més casos de prova si es vol ```sc.hasNext()
444469

445470
## Problema H: Recuperando tesoros
446471

0 commit comments

Comments
 (0)