This commit is contained in:
Tanguy MAZE
2019-06-22 18:23:35 +02:00
commit f9e508d5ef
173 changed files with 6727 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
# General guidelines
* No communication whatsoever is allowed.
* This is an exam, you don't have a right to chat, listen to music, make noise, or generally do anything that may disturb the other students in any way.
* Your phones and other technological devices must be turned off and put away. If a phone rings, the whole row will be disqualified from the exam and kicked out immediately.
* Your home directory contains three directories : "rendu", "subjects" and "traces".
* The "subjects" directory will contain the subjects of your assignments
* The "rendu" folder is a clone of your Git turn-in repository. You will work in it, and use it as any regular Git repository.
* The system will not grade anything that is not pushed on your Git turn-in repository, and at the right place. Pay attention to where examshell tells you to put your files.
* You can only run your programs in the "rendu" directory or one of its subdirectories.
* You may need to read the man to carry out some assignments...
* You will be graded by a program. You must respect the specified file/path/function names to the letter.
* Assignments will always specify which files will be collected :
* When an assignment asks for specific files, they will be explicitly named. For example "file1.c file1.h".
* Otherwise, when filenames and/or the number of files is up to you, the assignment will say something along the lines of "*.c *.h".
* When a Makefile is required, it will ALWAYS be explicitly stated.
* In case of technical problem, question about the subject, or any other problem, you must get up silently and wait for a member of the staff to come to you. It is forbidden to ask your neighbors, or to verbally call for a staff member.
* Any equipment not explicitly allowed is implicitly forbidden.
* Any exit is definitive, you can not come in again.
* Staff members may kick you out of the exam without warning if they deem it necessary.
* You are allowed blank pieces of paper, and a pen. No notebooks, notes, or any help of the sort. You are alone to face this exam.
# Coding guidelines
* Useful functions and files will sometimes be given to you in the subject directory
* The correction is fully automated, and performed by the program we know as Deepthought.
* When an assignment asks you to write a program with one or more explicitly named files, it will be compiled with the following command: clang -Wall -Wextra -Werror file1.c file2.c file3.c -o program_name.
* When the assignment leaves the filenames up to you, it will be compiled with: clang -Wall -Wextra -Werror *.c -o program_name.
* Finally, when you must only turn in a function (so, one file), it will be compiled with clang -c -Wall -Wextra -Werror yourfile.c, then we will compile our main function and link them together to create a test program.
* Allowed functions will be specified in the headers of the assignments. You may recode any other function you think is necessary. Using a function that's not explicitly allowed is considered cheating, and will result in a failing grade, with no possible discussion or appeal whatsoever. You've been warned.
* Any function that isn't explicitly allowed is implicitly forbidden.

View File

@@ -0,0 +1,54 @@
# Consignes générales
* Aucune communication, quelle qu'elle soit, n'est permise
* Ceci est un examen, il est interdit de discuter, écouter de la musique, faire du bruit, ou de façon générale de faire quoi que ce soit qui puisse perturber le travail des autres étudiants.
* Vos téléphones et autres appareils technologiques doivent être éteints et rangés. Pas en silencieux, éteints. Si un téléphone sonne, toute la rangée sera exclue immédiatement de l'examen.
* Votre répertoire home contient trois répertoires : "rendu", "subjects" et "traces".
* Le répertoire "subjects" contiendra les sujets de vos exercices
* Le répertoire "rendu" contiendra un clone de votre dépôt Git de rendu. Vous y travaillerez, et l'utiliserez comme n'importe quel autre dépôt Git de rendu.
* Le système ne corrigera rien qui n'est pas push sur votre dépôt de rendu à l'endroit correct. Faites attention à ce qu'examshell vous dit concernant les emplacements de rendu.
* Vous ne pouvez lancer vos propres programmes que dans le répertoire "rendu" ou l'un de ses sous-répertoires.
* Vous aurez peut-être besoin de lire les man pour certains exercices ...
* Vous aller être corrigé par un programme. Vous devez donc respecter à la lettre les noms de fichiers/fonctions qui vous sont imposés.
* Les exercices spécifient toujours les noms de fichiers qui vous sont demandés:
* Quand on vous demande des fichiers spécifiques, ils seront nommés explicitement, par exemple "file1.c file1.h"
* Quand les noms et le nombre de fichier sont à votre discrétion, on dira quelque chose comme "*.c *.h"
* Quand il faut un Makefile, ce sera toujours explicitement précisé
* En cas de problème technique, de question sur un sujet, ou tout autre souci, vous devez vous lever EN SILENCE et attendre qu'un membre du staff vienne vous voir. Il est interdit de demander à vos voisins, ou d'appeler verbalement un membre du staff.
* Vous avez le droit à des feuilles vierges, un stylo, et c'est tout. Pas de cahiers, carnets, ou autres. Pas d'écouteurs, de casques, de portable, etc ...
* Tout équipement qui n'est pas explicitement autorisé est implicitement interdit.
* Toute sortie est définitive.
* Les membres du staff peuvent vous exclure de l'examen sans préavis s'ils l'estiment nécessaire pour quelque raison que ce soit.
# Consignes relative au code
* Des fonctions et fichiers utiles vous seront parfois donnés dans le répertoire du sujet
* Les corrections sont entièrement automatiques et réalisées par un programme nommé Deepthought
* Les programmes seront compilés avec "clang -Wall -Wextra -Werror"
* Quand on ne vous demande qu'une fonction, et non un programme, cela signifie que votre fichier sera compilé accompagné de notre propre main.c
* Les fonctions autorisées sont précisées dans les en-têtes des exercices. Vous pouvez recoder toute fonction que vous jugez nécessaire. Utiliser une fonction non-autorisée est assimilé à de la triche et résultera en un échec immédiat de l'exercice, sans appel. Vous êtes prévenu.
* Toute fonction qui n'est pas explicitement autorisée est implicitement interdite

View File

@@ -0,0 +1,56 @@
#Reguli generale de urmat la examene
*Nici un fel de comunicare nu este permisă.
*Acesta este un examen, nu aveți dreptul să vorbiți, să ascultați muzică, să faceți zgomot sau să faceți ceva ce ar putea deranja pe ceilați studenți în vreun fel.
*Telefoanele mobile sau orice alte dispozitive trebuie să fie închise și puse deoparte. Dacă sună vreun telefon, tot rândul va fi descalificat din examen și dat afară imediat!
*Directorul vostru ”home” conține trei directoare: ”rendu”, ”subjects” și ”traces”.
*Directorul ”subjects” va conține subiectul examenului vostru.
*Directorul ”rendu” este o clonă a Git-ului vostru ”turn-in repository”. Veți lucra în el, și poate fi utilizat ca orice depozit Git regulat.
*Sistemul nu va nota nimic ce nu este trimis pe Git ”turn-in repository” și în locul corect. Fiți foarte atenți unde ”examshell” va spune sa puneți fișierele voastre.
*Puteți să vă rulați programele voastre în directorul ”rendu” sau în unul din subdirectoarele lui.
*Este posibil să fie nevoie să citiți man-ul pentru a realiza un exercițiu.….
*Veți fi notați de un program. Trebuie să respectați specificațiile fisierului / căii (path) / numele funcțiilor EXACT așa cum este cerut.
*Exercițiile vor specifica întotdeauna ce fișiere vor fi corectate:
* Când un exercițiu cere un anumit fișier, acesta va fi numit explicit. De exemplu ”file1.c” sau ”file1.h”
* Altfel, când numele sau numărul de fișiere este la latitudinea voastră, exercițiul va specifica ceva de genul ”*.c” sau ”*.h”
* Când un ”Makefile” este cerut, va fi ÎNTOTDEAUNA specificată starea lui.
* În cazul unei defecțiuni tehnice, întrebări despre subiect sau orice altă problemă, trebuie să te ridici în picioare, în liniște și să aștepți ca un membru al staff-ului sa vină la tine. Este interzis să îți întrebi vecinii sau să strigi după un membru al staff-ului.
* Oricei echipament care nu este explicit permis, este implicit interzis.
* Orice părăsire a sălii de examinare este definitivă, nu te mai poți întoarce.
* Membri staff-ului vă pot da afară din examen, fără avertisment, în cazul în care consideră necesar.
* Vă este permisă intrarea în sală cu o hartie albă și un pix, Fără caiete, notițe sau orice alt ajutor de acest fel. Ești singur ca să înfrunți acest examen.
# Reguli pentru codare
* Funcții folositoare sau fișiere vor fi date, câteodată, în directorul subiectului.
* Corectarea este complet automată și se face de către un program pe care îl numim ”Deepthought”
* Când un exercițiu îți cere să scrii un program cu unul sau mai multe nume de fișiere date explicit, va fi compliat cu următoarea comandă: ”clang -Wall -Wextra -Werror file1.c file2.c file3.c -o nume_program”.
* Cand exercitiul lasa la latitudinea voastra numele fisierelor, exercitiul va fi compilat cu: clang -Wall -Wextra -Werror *.c -o program_name
* Când trebuie doar să trimiteți o funcție (adică un fișier) va fi compilat cu ”clang -c -Wall -Wextra -Werror yourfile.c” apoi noi vom compila funcția noastră principală și le vom lega împreună pentru a crea un program de test.
* Funcțiile permise vor fi specificate în antetele fiecărui exercițiu. Puteți recoda orice altă funcție credeți că este necesar. Folosirea unei funcții care nu este permisă în mod explicit este considerată trișare, și va duce la nepromovarea examenului, fără drept la discuții sau contenstații. Ați fost avertizați.
*Orice funcție, care nu este permisă în mod explicit, este implicit interzisă

1
exam-basedir07/rendu Submodule

Submodule exam-basedir07/rendu added at 2ac6a4c7dc

View File

@@ -0,0 +1,31 @@
Assignment name : biggest_pal
Expected files : *.c, *.h
Allowed functions: write
--------------------------------------------------------------------------------
Write a program named biggest_pal that takes a string as argument and prints the
biggest palindrome included inside this string, followed by a newline.
This string contains only lowercase characters.
If there is two palindromes of the same length, you have to print the last one.
If there is more or less than 1 argument, your program must print only a newline
only.
Exemples:
$> biggest_pal "abcba"
abcba
$> biggest_pal "aaaaaaaaaabbcbbaaaa"
aaaabbcbbaaaa
$> biggest_pal "aooibdaoiwhoihwdoinzeldaisaboyobasiadlezfdsfnslk"
zeldaisaboyobasiadlez
$> biggest_pal "aeibaabaammaabaalek"
aabaammaabaa
$> biggest_pal abeb qpinqwjobo qkmnwoiq
$> biggest_pal
$>

View File

@@ -0,0 +1,31 @@
Assignment name : biggest_pal
Expected files : *.c, *.h
Allowed functions: write
--------------------------------------------------------------------------------
Écrire un programme nommé biggest_pal, qui prend en paramètre une chaîne de
caractères, et qui affiche le plus grand palindrome trouvé dans cette chaîne suivi
d'une newline.
La chaine passée en paramètre ne contient uniquement que des lettres minuscules.
Si il y a 2 palindromes de meme taille, celui à imprimer sera le dernier rencontré.
Si le programme reçoit un nombre d'arguments différent de 1, vous ne renverrez
qu'une newline.
Exemples:
$> biggest_pal "abcba"
abcba
$> biggest_pal "aaaaaaaaaabbcbbaaaa"
aaaabbcbbaaaa
$> biggest_pal "aooibdaoiwhoihwdoinzeldaisaboyobasiadlezfdsfnslk"
zeldaisaboyobasiadlez
$> biggest_pal "aeibaabaammaabaalek"
aabaammaabaa
$> biggest_pal abeb qpinqwjobo qkmnwoiq
$> biggest_pal
$>

View File

@@ -0,0 +1,31 @@
Assignment name : brackets
Expected files : *.c *.h
Allowed functions: write
--------------------------------------------------------------------------------
Write a program that takes an undefined number of strings in arguments. For each
argument, the program prints on the standard output "OK" followed by a newline
if the expression is correctly bracketed, otherwise it prints "Error" followed by
a newline.
Symbols considered as 'brackets' are brackets '(' and ')', square brackets '['
and ']'and braces '{' and '}'. Every other symbols are simply ignored.
An opening bracket must always be closed by the good closing bracket in the
correct order. A string which not contains any bracket is considered as a
correctly bracketed string.
If there is no arguments, the program must print only a newline.
Examples :
$> ./brackets '(johndoe)' | cat -e
OK$
$> ./brackets '([)]' | cat -e
Error$
$> ./brackets '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e
OK$
OK$
$> ./brackets | cat -e
$
$>

View File

@@ -0,0 +1,32 @@
Assignment name : brackets
Expected files : *.c *.h
Allowed functions: write
--------------------------------------------------------------------------------
Ecrire un programme qui prendra une chaine de caractères en paramètre et qui
écrit sur la sortie standard 'OK' si l'expression est bien parenthesée et
'Error' dans le cas contraire, le tout suivi d'une newline.
Les symboles utilisés comme 'parenthèses' seront les parenthèses '(' et ')', les
crochets '[' et ']' ainsi que les accolades '{' et '}'. Tous les autres
caractères seront tout simplement ignorés.
Une parenthèse ouvrante devra obligatoirement être fermée par une parenthèse
fermante et dans le bon ordre (parenthèses imbriquées). Une chaine ne comportant
aucune parenthèse est considerée comme bien parenthesée.
Votre programme évaluera tous les arguments. Si aucun argument n'est fourni,
il affichera seulement une newline.
Exemples :
$> ./brackets '(jo:qahndoe)' | cat -e
OK$
$> ./brackets '([)]' | cat -e
Error$
$> ./brackets '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e
OK$
OK$
$> ./brackets | cat -e
$
$>

View File

@@ -0,0 +1,39 @@
Pion / Pawn (P):
. . . . . . .
. . . . . . .
. . X . X . .
. . . P . . .
. . . . . . .
. . . . . . .
. . . . . . .
Fou / Bishop (B):
X . . . . . X
. X . . . X .
. . X . X . .
. . . B . . .
. . X . X . .
. X . . . X .
X . . . . . X
Tour / Rook (R):
. . . X . . .
. . . X . . .
. . . X . . .
X X X R X X X
. . . X . . .
. . . X . . .
. . . X . . .
Dame / Queen (Q)
X . . X . . X
. X . X . X .
. . X X X . .
X X X Q X X X
. . X X X . .
. X . X . X .
X . . X . . X

View File

@@ -0,0 +1,40 @@
Assignment name : check_mate
Expected files : *.c, *.h
Allowed functions: write, malloc, free
--------------------------------------------------------------------------------
Write a program who takes rows of a chessboard in argument and check if your
King is in a check position.
Chess is played on a chessboard, a squared board of 8-squares length with
specific pieces on it : King, Queen, Bishop, Knight, Rook and Pawns.
For this exercice, you will only play with Pawns, Bishops, Rooks and Queen...
and obviously a King.
Each piece have a specific method of movement, and all patterns of capture are
detailled in the examples.txt file.
A piece can capture only the first ennemy piece it founds on its capture
patterns.
The board have a variable size but will remains a square. There's only one King
and all other pieces are against it. All other characters except those used for
pieces are considered as empty squares.
The King is considered as in a check position when an other enemy piece can
capture it. When it's the case, you will print "Success" on the standard output
followed by a newline, otherwise you will print "Fail" followed by a newline.
If there is no arguments, the program will only print a newline.
Examples:
$> ./chessmate '..' '.K' | cat -e
Fail$
$> ./check_mate 'R...' '.K..' '..P.' '....' | cat -e
Success$
$> ./chessmate 'R...' 'iheK' '....' 'jeiR' | cat -e
Success$
$> ./chessmate | cat -e
$
$>

View File

@@ -0,0 +1,40 @@
Assignment name : check_mate
Expected files : *.c, *.h
Allowed functions: write, malloc, free
--------------------------------------------------------------------------------
Ecrire un programme qui prendra en arguments les lignes d'un plateau de jeu
d'échecs, et verifie si le Roi est en échec ou non par rapport aux autres
pièces en jeu.
Pour rappel, un jeu d'échecs est composé d'un plateau carré de 8 cases de coté
et est composé de pièces spécifiques: Roi, Reine, Fou, Cavalier, Tour et Pion.
Pour cet exercice, nous ne garderons que les Pions, Fous, Tours et Dames, en
plus du Roi.
Chaque pièce peut se déplacer que selon un schéma précis et les patterns de
captures sont détaillés dans l'exemple fourni.
Une piece ne peut capturer que la premiere piece possible sur leur trajectoire
de capture.
Le plateau peut être de taille différente que le plateau classique, mais sera
TOUJOURS carré. Il ne peut y avoir qu'un seul Roi et toutes les autres
pièces seront contre lui. Tout autre caractere hormis ceux utilises pour les
pieces d'echec sera considere comme une case vide.
Le roi est considéré comme en échec si une pièce adverse est en position pour
le capturer. Si il est en échec, vous devrez afficher "Success" suivi d'une new-
line, sinon il affichera "Fail" suivi d'une newline.
Si aucun argument n'est fourni, le programme affichera une newline.
Exemples:
$> ./check_mate '..' '.K' | cat -e
Fail$
$> ./check_mate 'R...' '.K..' '..P.' '....' | cat -e
Success$
$> ./check_mate | cat -e
$
$>

View File

@@ -0,0 +1,28 @@
Assignment name : cycle_detector
Expected files : cycle_detector.c
Allowed functions: malloc, free
--------------------------------------------------------------------------------
Create a function named cycle_detector that takes a const t_list *list
as argument, and check if the given linked list contains no cycles.
A cycle is defined when you go at least twice through the same link, when you
travel inside a linked list.
This function should returnw 1 if it detects a cycle inside the given linked
list, otherwise it returns 0.
This function should be prototyped like this:
int cycle_detector(const t_list *list)
The type t_list is:
typedef struct s_list
{
int data;
struct s_list *next;
} t_list;
This type will be included in a header named "list.h". You don't have to turn-in
your "list.h", we will use ours during the evaluation.

View File

@@ -0,0 +1,28 @@
Assignment name : cycle_detector
Expected files : cycle_detector.c
Allowed functions: malloc, free
--------------------------------------------------------------------------------
Créez une fonction cycle_detector qui prends un "const t_list *list" en
argument, qui vérifiera qu'il n'y a aucun cycle à l'intérieur de la liste chainée
list.
Un cycle est défini quand, lors du parcours de la liste, vous passez au moins 2
fois à travers le même maillon.
Cette fonction retournera 1 si la fonction détecte un cycle, sinon elle renverra 0.
Cette fonction sera prototypé comme suit :
int cycle_detector(const t_list *list)
Le type "t_list" est défini comme suit :
typedef struct s_list
{
int data;
struct s_list *next;
} t_list;
Ce type sera fourni dans le header "list.h". Vous n'avez pas besoin de le fournir,
nous utiliserons le notre en correction.

View File

@@ -0,0 +1,29 @@
= Host-specific information ====================================================
$> hostname; uname -msr
e1r13p12.42.fr
Darwin 16.7.0 x86_64
$> date
Wed May 2 19:49:27 CEST 2018
$> gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
$> clang --version
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
= User files collection ========================================================
Collecting user files from Vogsphere
Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180502/tmaze2
= Collected files ==========================================
$> ls -lAR /var/folders/vq/p6k3tx710r70mshk0zxwsq3h0000gq/T/tmpJ4duEp/user
= biggest_pal ==================================================================
Nothing turned in
Grade: 0
= Final grade: 0 ===============================================================

View File

@@ -0,0 +1,29 @@
= Host-specific information ====================================================
$> hostname; uname -msr
e1r3p10.42.fr
Darwin 16.7.0 x86_64
$> date
Wed May 2 19:51:41 CEST 2018
$> gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
$> clang --version
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
= User files collection ========================================================
Collecting user files from Vogsphere
Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180502/tmaze2
= Collected files ==========================================
$> ls -lAR /var/folders/pq/2l6b53hx0sv087mw88rrg2bm0000gq/T/tmpBzWe6y/user
= check_mate ===================================================================
Nothing turned in
Grade: 0
= Final grade: 0 ===============================================================

View File

@@ -0,0 +1,29 @@
= Host-specific information ====================================================
$> hostname; uname -msr
e2r6p6.42.fr
Darwin 16.7.0 x86_64
$> date
Wed May 2 19:53:49 CEST 2018
$> gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
$> clang --version
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
= User files collection ========================================================
Collecting user files from Vogsphere
Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180502/tmaze2
= Collected files ==========================================
$> ls -lAR /var/folders/yt/j6phq77s49x1q7fnp3tn5l6m0000gq/T/tmpiHzbNb/user
= brackets =====================================================================
Nothing turned in
Grade: 0
= Final grade: 0 ===============================================================

View File

@@ -0,0 +1,47 @@
= Host-specific information ====================================================
$> hostname; uname -msr
e2r10p1.42.fr
Darwin 16.7.0 x86_64
$> date
Wed May 2 19:57:21 CEST 2018
$> gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
$> clang --version
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
= User files collection ========================================================
Collecting user files from Vogsphere
Repository URL: auto-exam/2018/c-exam-alone-in-the-dark-beginner/practice-exam_20180502/tmaze2
= Git history ==================================================================
$> git -C /var/folders/91/kh6l6vg10w58x_sb25wysf940000gq/T/tmpjasV6_/user log --pretty='%H - %an, %ad : %s'
2ac6a4c7dc8bf57c0c431ba0f1f0ef5bededdece - Tanguy MAZE, Wed May 2 19:55:09 2018 +0200 : cycle_detector
= Collected files ==========================================
$> ls -lAR /var/folders/91/kh6l6vg10w58x_sb25wysf940000gq/T/tmpjasV6_/user
total 8
-rw-r--r-- 1 deepthought deepthought 263 May 2 19:57 __GIT_HISTORY
drwxr-xr-x 3 deepthought deepthought 102 May 2 19:57 cycle_detector
/var/folders/91/kh6l6vg10w58x_sb25wysf940000gq/T/tmpjasV6_/user/cycle_detector:
total 8
-rw-r--r-- 1 deepthought deepthought 1467 May 2 19:57 cycle_detector.c
= cycle_detector ===============================================================
$> clang -Wextra -Wall -Werror main.c test_cycle_detector.c cycle_detector.c -o user_exe
= Test 1 ===================================================
$> ./r0vgwotdey2deavspqenrcg0
$> diff -U 3 user_output_test1 test1.output | cat -e
Diff OK :D
Grade: 1
= Final grade: 1 ===============================================================