https://github.com/smknstd/criteo-codeofduty2011
Ma solution au concours de programmation "Criteo" de 2011
https://github.com/smknstd/criteo-codeofduty2011
Last synced: about 1 month ago
JSON representation
Ma solution au concours de programmation "Criteo" de 2011
- Host: GitHub
- URL: https://github.com/smknstd/criteo-codeofduty2011
- Owner: smknstd
- Created: 2014-02-15T13:33:20.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2014-02-15T14:17:57.000Z (over 12 years ago)
- Last Synced: 2025-03-06T01:49:56.379Z (about 1 year ago)
- Language: Java
- Homepage:
- Size: 137 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.markdown
Awesome Lists containing this project
README
## Criteo Code of Duty 2011
Enoncé du problème disponible à cette [adresse](http://www.guillaumeleone.fr/doc/COD_1_enonce.pdf).
J'ai écrit ce programme juste pour le fun !!? Java etait le langage proposé dont je maitrise le mieux les structures de données.
### Remarques
1. **Ma classe Liste a tous ses attributs public :( #iknowitsbad
2. **L'énoncé n'est pas 100% explicite sur la règle de propagation d'un poid lors d'une étape. Selon un des exemples données, il faut comprendre qu'un poids ne peut être transmis qu'une fois par étape. Dans mon algorithme de parcours de gauche à droite, lorsque je transmets un poids à droite vers une case qui était vide, alors cette case ne peut plus transmettre ce poids à son tour lors de la même étape.
Comprenez que ceci n'est pas possible:
0 : (10, 0, 0, 0, 0)
1 : (9, 0, 0, 0, 1)
2 : (8, 0, 0, 0, 2)
3 : (7, 0, 0, 1, 2)
4 : (6, 0, 0, 2, 2)
mais qu'on est obligé de faire:
0 : (10, 0, 0, 0, 0)
1 : (9, 1, 0, 0, 0)
2 : (8, 1, 1, 0, 0)
3 : (7, 1, 1, 1, 0)
4 : (6, 1, 1, 1, 1)
Pour résoudre ce problème, lors de mon parcours du tableau, j'ai du sauver l'état du tableau à l'étape précédente. Je n'avais jamais effectué cette opération jusqu'a maintenant. Apparemment il existe plusieurs moyens de le faire. J'ai choisi:
```java
int[] step = Arrays.copyOf(previousStep, l.size);
```
### Ressources
1. **Cette [gem](https://github.com/tsantos/rakejava) permettant de compiler java dans un Rakefile