My name is Hendry Anastacia Chandra. I am an undergraduate at Binus University studying Computer Science - Software Engineering. I have a passion in Web Development, Teaching, and UI/UX Design. I am eager to expand my knowledge and contribute my skills in a collaborative environment. Welcome to my Portfolio!
I am currently studying Computer Science - Software Engineering at Binus University @Bekasi, where I started my journey in 2022 right after high school. Through my studies, I have gained proficiency in core subjects such as Algorithm and Programming, Software Design, Human-Computer Interaction, and others. My academic journey has been enriched by maintaining a strong academic record and excelling in key courses. I have also taken opportunities to participate in competitions, proudly representing my university. To complement my academic learning, I have worked on several projects that showcase my technical and creative abilities. These include a prototype design focused on improving well-being, a UI/UX design for an AI-powered education platform for individuals with disabilities using Figma, and study cases in C and Java programming, among others. Collaborating with peers on these projects strengthened my problem-solving abilities and capacity to deliver impactful, user-centered solutions. Notably, our education platform project was recognized for its innovative use of AI to enhance accessibility. Beyond academics, I continuously work on improving my soft skills, such as leadership, communication, and adaptability. With a passion for Web Development and UI/UX Design, I aspire to create innovative, fresh, and unique software solutions that enhance user experiences and address real-world problems. My goal is to contribute to impactful projects, combining my technical expertise with the skills I’ve honed through education and experience.
Binus University @Bekasi
Expected Graduation: 2026
Highlights:
HTML
CSS
JavaScript
C
Python
Java
MySQL
Figma
Team Leadership
Using my leadership skills, I guide and manage my team to achieve our goals .
Communication
I deliver my ideas clearly and listen well to others opinions or ideas.
Public Speaking
To effectively communicate my ideas or information to an audience clearly and engagingly.
Problem Solving
Analyzing and resolving complex challenges efficiently.
Adaptability
Adjusting to new situations and environments to understand what is the best.
Attention to detail
To spot small inconsistencies or errors to ensure precision and quality.
Critical Thinking
An approach to problem-solving where I think logicaly and analytically.
Empathy
Understanding and share the feelings, needs, and perspectives of others
Time Management
Capability to prioritize tasks, set goals, and use time efficiently
I have been studying English since Grade 1, building fluency over the years. I frequently use English in academic, professional, and social contexts. My Experience includes presenting ideas, collaborating with other English-speakign peers, and writing documents, showcasing my ability to communicate effectively across diverse settings.
I was born and raised Indonesia, making me a native speaker. My proficiency allows me to communicate seamlessly. I also enjoy exploring Indonesian culture and media to deepen my understanding of Indonesia.
I enjoy creating aesthetically pleasing and functional websites using HTML and CSS, constantly seeking new knowledge to enhance my skills in web development.
I am passionate about sharing knowledge and mentoring others. I find great joy in helping others understand and apply what I have taught them.
I enjoy solving challenging puzzles, such as Rubik's Cube and its many variants, which help enhance my critical thinking and problem-solving skills.
I love exploring and conquering new opportunities and challenges, which helps me enhance my adaptability skills and prepares me to effectively navigate future endeavors.
January 2024 - Present
January 2023 - December 2023
September 2023 - June 2024
July 2023 - September 2023
Achieved: First Place 🥇
Invofest (Informatics Vocational Festival) is an annual event organized by Teknik Informatika Harber, aimed at inspiring and empowering Indonesia's youth to navigate and thrive in the digital era.
My team and I competed in the UI/UX Design Competition, focusing on the theme: "AI Challenge: Gen Z's Quest for Digital Sustainability". Through innovation and collaboration, we advanced to the finals and proudly secured 1st place, demonstrating our commitment to creating impactful and sustainable digital solutions.
Proto-A-Thon is an international prototype design competition hosted by the Business Information Technology program at Binus @Bekasi. This year’s theme, "Education Technology for Disability," challenged participants to develop innovative solutions for improving educational resources and providing inclusive technology support for students with disabilities.
My team and I participated with dedication and creativity, successfully ranking 15th out of 50+ teams, showcasing our ability to generate impactful ideas in a highly competitive field.
WellMind is a prototype design focused on improving mental well-being. Developed as part of a Human & Computer Interaction project, WellMind emphasizes accessibility, ease of use, and mental health support tailored to diverse user needs.
The WellMind homepage offers a clean and intuitive design for users to easily navigate through various features. It provides a snapshot of user progress, inspiring quotes, and a calming aesthetic that sets the tone for a mindful experience.
WellMind offers a chat page, serving as a dedicated space for users to connect with professionals and peers. Designed to foster a sense of community and provide immediate support, the chat page balances simplicity with functionality for an engaging user experience.
The WellMind Check-Up Page provides users with a structured and personalized way to assess their mental well-being regularly. Through intuitive design and actionable insights, it empowers users to understand and improve their emotional health over time.
The WellMind Mood Tracker is an intuitive and interactive tool that helps users log their emotions daily and visualize their mental health journey over time. By offering a calendar-based interface, it simplifies mood tracking and promotes self-awareness.
The WellMind Goals Tracker empowers users to set, monitor, and achieve their personal objectives, fostering a sense of accomplishment and purpose. Designed with simplicity and clarity, the tracker ensures that users stay motivated and organized.
See WellMind in action! Explore its features and design through the live preview or review the source code.
Please note that WellMind is a prototype design, developed to showcase its features and conceptual framework.
EduBridge is a self-learning and note-sharing platform designed to empower students by providing seamless access to educational resources and collaborative tools. This project focuses on bridging the gap between students and learning materials through a user-friendly interface and innovative features.
The EduBridge Home Page serves as a centralized hub for users to access various features and explore the platform's offerings. With a clean and intuitive design, it provides quick navigation and highlights essential tools for a seamless user experience.
EduBridge's Course Page provides students with a streamlined and intuitive interface to explore the available courses. It offers a comprehensive overview of educational resources, making it easy for students to find and access the content they need.
The Playlist Page in EduBridge provides an organized and user-friendly interface for students to access a collection of educational videos within a specific playlist. It focuses on enhancing the learning experience by displaying detailed information and easy navigation through the content.
The Watch Video Page of EduBridge provides students with an immersive and focused video learning experience.
The Notes Page in EduBridge serves as a collaborative platform where students can share their notes and access notes from their peers. This feature fosters a community-driven learning environment.
The View Notes Page in EduBridge provides students with a seamless experience to access and utilize shared study materials effectively.
Explore the EduBridge platform to see how it facilitates collaborative and self-directed learning.
EduMate is a prototype project developed by Team Return 0 — including myself, Miguel, and Hariz. This innovative design was created for participation in Proto-A-Thon and InvoFest, where it earned 1st place, demonstrating its impact and creativity.
EduMate is a mobile application designed to empower individuals with disabilities by providing tailored tools and resources to enhance their educational experience. Its mission is to bridge the accessibility gap in education, fostering inclusivity and enabling users to achieve their academic goals with ease and independence.
The Starting Page welcomes users as they begin their EduMate journey. On this page, users can select their EduMate—a personalized mascot and companion—that will guide and support them throughout their educational experience. This feature adds a fun and interactive element, creating a more engaging and personalized learning environment.
The Home Page of EduMate serves as a welcoming dashboard, designed to provide users with quick access to the app's key features and information. It sets the stage for an intuitive and engaging learning experience.
The Edumate Customization Page allows users to personalize their Edumate to reflect their own preferences and personality. By customizing their Edumate, users can create a more meaningful and engaging connection with their virtual learning companion. This feature fosters a sense of attachment, making the learning experience more enjoyable and personal.
The Course Detail Page provides users with an overview of the selected course, including its content, structure, and objectives. This page serves as a gateway to begin the learning journey for a specific course, offering essential information to prepare users for what lies ahead.
The Learning Page provides users with a focused and interactive learning experience for the selected topic. It offers a comprehensive introduction to the lesson and ensures an engaging and supportive environment through AI assistance.
These are just some of the features EduMate has to offer.
Dive into EduMate to explore a wide range of innovative and user-focused features designed to enhance your educational journey.
This section showcases a collection of C programming projects and cases I have worked on and solved. Each project demonstrates problem-solving abilities, logical structuring, and hands-on programming skills in the C language.
This project is a text-based implementation of the popular 2048 puzzle game, developed in C. The game challenges players to combine tiles with the same value by swiping them in four directions (up, down, left, or right) to achieve the highest score possible.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
#include <time.h>
void MainMenu()
{
printf("2048\n\n\n");
printf(" 1. New Game\n");
printf(" 2. Highscore\n");
printf(" 3. Exit\n");
printf(" >> ");
}
struct Player
{
char UserID[6];
char Name[16];
int score;
struct Player* next;
};
struct Player* addPlayer(struct Player* head, char UserID[6], char Name[16], int score)
{
struct Player* newNode = (struct Player*)malloc(sizeof(struct Player));
strcpy(newNode->UserID, UserID);
strcpy(newNode->Name, Name);
newNode->score = score;
newNode->next = head;
head = newNode;
return head;
}
void swapPlayers(struct Player* a, struct Player* b)
{
struct Player temp = *a;
*a = *b;
*b = temp;
}
int partition(struct Player* arr, int low, int high)
{
int pivot = arr[high].score;
int i = (low - 1);
for (int j = low; j <= high - 1; j++)
{
if (arr[j].score > pivot)
{
i++;
swapPlayers(&arr[i], &arr[j]);
}
}
swapPlayers(&arr[i + 1], &arr[high]);
return (i + 1);
}
void quickSort(struct Player* arr, int low, int high)
{
if (low < high)
{
int pi = partition(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
void printTop10Scores(struct Player* head)
{
if (head == NULL)
{
printf("No HighScores\n");
return;
}
struct Player* top10 = (struct Player*)malloc(10 * sizeof(struct Player));
int i;
for (i = 0; i < 10; i++)
{
top10[i].score = -1;
}
struct Player* current = head;
while (current != NULL)
{
for (i = 0; i < 10; i++)
{
if (current->score > top10[i].score)
{
for (int j = 9; j > i; j--)
{
top10[j] = top10[j - 1];
}
top10[i] = *current;
break;
}
}
current = current->next;
}
quickSort(top10, 0, 9);
printf("%-3s |%-10s |%-15s |%s\n", "No.", "ID", "Username", "Score");
for (i = 0; i < 10; i++)
{
printf("%-3d |%-10s |%-15s |%d\n", i + 1, top10[i].UserID, top10[i].Name, top10[i].score);
}
free(top10);
}
int BOARD_SIZE = 4;
int board[6][6];
void StartingBoard()
{
for (int i = 0; i < BOARD_SIZE; i++)
{
for (int j = 0; j < BOARD_SIZE; j++)
{
board[i][j] = 0;
}
}
}
void randomTiles()
{
int emptyTiles[BOARD_SIZE * BOARD_SIZE][2];
int count = 0;
for (int i = 0; i < BOARD_SIZE; i++)
{
for (int j = 0; j < BOARD_SIZE; j++)
{
if (board[i][j] == 0)
{
emptyTiles[count][0] = i;
emptyTiles[count][1] = j;
count++;
}
}
}
if (count > 0)
{
int randomIndex = rand() % count;
int value = (rand() % 2 + 1) * 2;
int x = emptyTiles[randomIndex][0];
int y = emptyTiles[randomIndex][1];
board[x][y] = value;
}
}
int score = 0;
void printBoard()
{
system("cls");
printf("2048 Game\n");
for (int i = 0; i < BOARD_SIZE; i++)
{
for (int j = 0; j < BOARD_SIZE; j++)
{
if (board[i][j] == 0)
{
printf("| %-4s ", "");
}
else
{
printf("| %-4d ", board[i][j]);
}
}
printf("|\n");
if (i < BOARD_SIZE - 1)
{
for (int j = 0; j < BOARD_SIZE; j++)
{
printf("+------");
}
printf("+\n");
}
}
printf("Score: %d\n\n\n[Press Enter To Exit]", score);
}
void moveUp()
{
for (int column = 0; column < BOARD_SIZE; column++)
{
for (int row = 1; row < BOARD_SIZE; row++)
{
if (board[row][column] != 0)
{
int newRow = row;
while (newRow > 0 && board[newRow - 1][column] == 0)
{
board[newRow - 1][column] = board[newRow][column];
board[newRow][column] = 0;
newRow--;
}
if (newRow > 0 && board[newRow - 1][column] == board[newRow][column])
{
int merge = board[newRow - 1][column] * 2;
board[newRow - 1][column] = merge;
board[newRow][column] = 0;
score += merge;
}
}
}
}
}
void moveDown()
{
for (int column = 0; column < BOARD_SIZE; column++)
{
for (int row = BOARD_SIZE - 2; row >= 0; row--)
{
if (board[row][column] != 0)
{
int newRow = row;
while (newRow < BOARD_SIZE - 1 && board[newRow + 1][column] == 0)
{
board[newRow + 1][column] = board[newRow][column];
board[newRow][column] = 0;
newRow++;
}
if (newRow < BOARD_SIZE - 1 && board[newRow + 1][column] == board[newRow][column])
{
int merge = board[newRow + 1][column] * 2;
board[newRow + 1][column] = merge;
board[newRow][column] = 0;
score += merge;
}
}
}
}
}
void moveLeft()
{
for (int row = 0; row < BOARD_SIZE; row++)
{
for (int column = 1; column < BOARD_SIZE; column++)
{
if (board[row][column] != 0)
{
int newColumn = column;
while (newColumn > 0 && board[row][newColumn - 1] == 0)
{
board[row][newColumn - 1] = board[row][newColumn];
board[row][newColumn] = 0;
newColumn--;
}
if (newColumn > 0 && board[row][newColumn - 1] == board[row][newColumn])
{
int merge = board[row][newColumn - 1] * 2;
board[row][newColumn - 1] = merge;
board[row][newColumn] = 0;
score += merge;
}
}
}
}
}
void moveRight()
{
for (int row = 0; row < BOARD_SIZE; row++)
{
for (int column = BOARD_SIZE - 2; column >= 0; column--)
{
if (board[row][column] != 0)
{
int newColumn = column;
while (newColumn < BOARD_SIZE - 1 && board[row][newColumn + 1] == 0)
{
board[row][newColumn + 1] = board[row][newColumn];
board[row][newColumn] = 0;
newColumn++;
}
if (newColumn < BOARD_SIZE - 1 && board[row][newColumn + 1] == board[row][newColumn])
{
int merge = board[row][newColumn + 1] * 2;
board[row][newColumn + 1] = merge;
board[row][newColumn] = 0;
score += merge;
}
}
}
}
}
int GameOver()
{
for (int i = 0; i < BOARD_SIZE; i++)
{
for (int j = 0; j < BOARD_SIZE; j++)
{
if (board[i][j] == 0)
{
return 0;
}
if ((i > 0 && board[i][j] == board[i - 1][j]) ||
(i < BOARD_SIZE - 1 && board[i][j] == board[i + 1][j]) ||
(j > 0 && board[i][j] == board[i][j - 1]) ||
(j < BOARD_SIZE - 1 && board[i][j] == board[i][j + 1]))
{
return 0;
}
}
}
return 1;
}
struct Player* readPlayersFromFile(const char* filename)
{
FILE* fp = fopen("highscore.txt", "r");
if (fp == NULL)
{
return NULL;
}
struct Player* head = NULL;
char UserID[6];
char Name[16];
int score;
while (fscanf(fp, "%5[^#]#%14[^#]#%d\n", UserID, Name, &score) == 3)
{
head = addPlayer(head, UserID, Name, score);
}
fclose(fp);
return head;
}
int main()
{
int count = 0;
struct Player* head = readPlayersFromFile("highscore.txt");
int MenuChoice;
do
{
MainMenu();
scanf("%d", &MenuChoice);
getchar();
switch (MenuChoice)
{
case 1: // play
{
int gameRunning = 1;
do
{
printf("Input Grid Size [4 or 6]: ");
scanf("%d", &BOARD_SIZE);
getchar();
} while (BOARD_SIZE != 4 && BOARD_SIZE != 6);
score = 0;
srand(time(NULL));
StartingBoard();
randomTiles();
randomTiles();
do
{
printBoard();
char key = getch();
switch (key)
{
case 'w':
moveUp();
break;
case 's':
moveDown();
break;
case 'a':
moveLeft();
break;
case 'd':
moveRight();
break;
case '\r':
gameRunning = 0;
break;
}
int checkGameOver = GameOver();
if (checkGameOver == 1)
{
getchar();
break;
}
randomTiles();
} while (gameRunning == 1);
system("cls");
char name[16];
do
{
printf("Input Name [name length must be between 3-15]: ");
scanf(" %[^\n]", name);
getchar();
} while (strlen(name) < 3 || strlen(name) > 15);
char id[6];
int random[3];
for (int i = 0; i < 3; i++)
{
random[i] = rand() % 10;
}
sprintf(id, "%c%c%d%d%d", toupper(name[0]), toupper(name[1]), random[0], random[1], random[2]);
head = addPlayer(head, id, name, score);
FILE* ADD = fopen("highscore.txt", "a");
fprintf(ADD, "%s#%s#%d\n", id, name, score);
fclose(ADD);
break;
}
case 2: // show highscore
system("cls");
printTop10Scores(head);
printf("\n\nPress Enter to Continue...");
getchar();
break;
case 3: // exit
system("cls");
printf("Thank you for playing!");
return 0;
break;
}
system("cls");
} while (MenuChoice != 3);
return 0;
}
LabIRinth Explorer is a text-based maze navigation game developed in C. In this game, players must find their way out of a labyrinth by reaching the designated goal (O) while avoiding obstacles and dead ends. The game offers a simple yet challenging experience with dynamic maze layouts and customizable difficulty levels.
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
void printLabirinth()
{
printf(" _ ____ ____ ____ ____ ____ ____ ______ __ __ \n");
printf("| | / | \\| | \\| | \\| | | | \n");
printf("| | | o | o )| || D )| || _ | | | | \n");
printf("| |___| | || || / | || | |_| |_| _ | \n");
printf("| | _ | O || || \\ | || | | | | | | | \n");
printf("| | | | || || . \\| || | | | | | | | \n");
printf("|_____|__|__|_____|____|__|\\_|____|__|__| |__| |__|__| \n");
printf("_--___-^_^-_--__^-_--__^-^--^^^^-^_^-_-^_^-_---__^--__- \n\n");
}
void printIntro()
{
printf("Welcome to labIRinth!\n\n");
printf("One day, you wake up in a cursed labyrinth and want to escape.\n");
printf("But, you realised that it might not be that easy.\n");
printf("As you look around, you realize that there are mummies roaming the place.\n");
printf("Try to get to the exit without getting caught by the mummies.\n");
printf("Good luck and have fun!\n");
}
char easy[20][40] =
{
"######################################",
"# #",
"# P # #",
"# # #",
"# # #",
"# # ###### #",
"# #",
"# #",
"# # ###### #",
"# # #",
"# # ### #",
"# # ### #",
"# ### #",
"# #",
"# #### #",
"# # # #",
"# #### O #",
"# #",
"######################################",
};
char medium[20][40] =
{
"######################################",
"# O #",
"# ### # #",
"# #",
"# #### #",
"# #",
"# # #",
"# ## # #",
"# # #",
"# # # # # #",
"# #",
"# # #",
"# # #",
"# #",
"# ## #",
"# # ####",
"# # # P #",
"# # # #",
"######################################",
};
char hard[20][40] =
{
"######################################",
"# P #",
"# # #",
"# # ####### #",
"# # #",
"# # ###### ### #",
"# # # #",
"# # #### #",
"# ## #",
"# ### #",
"# ## # #",
"# ## # # #",
"# ##### #",
"# ### ############ #",
"# ### ### #",
"# ### # #### #",
"# # # O #",
"# #",
"######################################",
};
void printWin()
{
printf(" __ __ __ ___ __ __ __ __ ____ ____ __ \n");
printf("| | | | | / \\ | | | | |__| || || \\ | | \n");
printf("| | | | || || | | | | | | | | | _ | | | \n");
printf("|__| | ~ || O || | | | | | | | | | | | |__| \n");
printf(" __ |___, || || : | | ` ' | | | | | | __ \n");
printf("| | | || || | \\ / | | | | | | | \n");
printf("|__| |____/ \\___/ \\__,_| \\_/\\_/ |____||__|__| |__| \n");
}
void printInformation()
{
printf("\nW A S D to move\n\nLegends\n");
printf("P player\nl mummy\nO escape");
printf("\n\nPress ENTER to exit");
}
void showMaze(char maze[20][40])
{
for(int i=0; i<20; i++)
{
for(int j=0; j<40; j++)
{
printf("%c", maze[i][j]);
}
printf("\n");
}
}
int main()
{
printLabirinth();
printIntro();
printf("\nPress any key to continue...");
getch();
system("cls");
char moveInput;
int easyY = 2;
int easyX = 2;
int mediumY = 16;
int mediumX = 35;
int hardY = 1;
int hardX = 32;
int difficulty;
int win = 0;
do
{
printLabirinth();
printf("Difficulty Level\n");
printf("--------------------\n");
printf("1. Easy\n2. Medium\n3. Hard\nChoose your difficulty (0 to exit): ");
scanf("%d", &difficulty);
getchar();
system("cls");
switch(difficulty)
{
case 1:
system("cls");
showMaze(easy);
printInformation();
do
{
moveInput = _getch();
switch (moveInput)
{
case 'w':
if(easy[easyY - 1][easyX] != '#')
{
easy[easyY][easyX] = ' ';
easyY--;
easy[easyY][easyX] = 'P';
}
break;
case 'a':
if(easy[easyY][easyX - 1] != '#')
{
easy[easyY][easyX] = ' ';
easyX--;
easy[easyY][easyX] = 'P';
}
break;
case 's':
if(easy[easyY + 1][easyX] != '#')
{
easy[easyY][easyX] = ' ';
easyY++;
easy[easyY][easyX] = 'P';
}
break;
case 'd':
if(easy[easyY][easyX + 1] != '#')
{
easy[easyY][easyX] = ' ';
easyX++;
easy[easyY][easyX] = 'P';
}
break;
default:
break;
}
system("cls");
showMaze(easy);
printInformation();
}while(easyY != 16 || easyX != 35);
system("cls");
printWin();
return 0;
break;
case 2:
system("cls");
showMaze(medium);
printInformation();
do
{
moveInput = _getch();
switch (moveInput)
{
case 'w':
if(medium[mediumY - 1][mediumX] != '#')
{
medium[mediumY][mediumX] = ' ';
mediumY--;
medium[mediumY][mediumX] = 'P';
}
break;
case 'a':
if(medium[mediumY][mediumX - 1] != '#')
{
medium[mediumY][mediumX] = ' ';
mediumX--;
medium[mediumY][mediumX] = 'P';
}
break;
case 's':
if(medium[mediumY + 1][mediumX] != '#')
{
medium[mediumY][mediumX] = ' ';
mediumY++;
medium[mediumY][mediumX] = 'P';
}
break;
case 'd':
if(medium[mediumY][mediumX + 1] != '#')
{
medium[mediumY][mediumX] = ' ';
mediumX++;
medium[mediumY][mediumX] = 'P';
}
break;
default:
break;
}
system("cls");
showMaze(medium);
printInformation();
}while(mediumY != 1 || mediumX != 18);
system("cls");
printWin();
return 0;
break;
case 3:
system("cls");
showMaze(hard);
printInformation();
do
{
moveInput = _getch();
switch (moveInput)
{
case 'w':
if(hard[hardY - 1][hardX] != '#')
{
hard[hardY][hardX] = ' ';
hardY--;
hard[hardY][hardX] = 'P';
}
break;
case 'a':
if(hard[hardY][hardX - 1] != '#')
{
hard[hardY][hardX] = ' ';
hardX--;
hard[hardY][hardX] = 'P';
}
break;
case 's':
if(hard[hardY + 1][hardX] != '#')
{
hard[hardY][hardX] = ' ';
hardY++;
hard[hardY][hardX] = 'P';
}
break;
case 'd':
if(hard[hardY][hardX + 1] != '#')
{
hard[hardY][hardX] = ' ';
hardX++;
hard[hardY][hardX] = 'P';
}
break;
default:
break;
}
system("cls");
showMaze(hard);
printInformation();
}while(hardY != 16 || hardX != 34);
system("cls");
printWin();
return 0;
break;
default:
break;
}
} while (difficulty != 0);
return 0;
}
Golden Tickets is one of the C programs I designed to solve a competition problem. The goal of the program is to determine which teams are eligible for "Golden Tickets" to participate in The ICPC Asia Jakarta 2023, adhering to specific institutional and ranking criteria.
The program processes data about N teams, their ranks, and their respective institutions. It first identifies the top M teams eligible by default. Then, it strategically selects up to K additional teams from institutions not represented in the top M, ensuring that only one team per institution receives a Golden Ticket. These selected teams are then sorted by their ranking and displayed.
#include <stdio.h>
#include <string.h>
int main() {
int N, M, K;
scanf("%d %d %d", &N, &M, &K);
char team_names[N][101];
char institutions[N][101];
for(int i=0; i<N; i++)
{
scanf(" %s %s", team_names[i], institutions[i]);
}
char uneligible_institutions[M][101];
int uneligible_count;
for(int i=0; i<M; i++)
{
strcpy(uneligible_institutions[i], institutions[i]);
uneligible_count++;
}
int golden_tickets_count = 0;
char golden_tickets_teams[N][101];
int institution_won[N];
for(int i=0; i<N; i++)
{
institution_won[i] = 0;
}
for(int i=0; i<N; i++)
{
if(golden_tickets_count < K)
{
int is_unelegible = 0;
for(int j=0; j<uneligible_count; j++)
{
if(strcmp(institutions[i], uneligible_institutions[j]) == 0)
{
is_unelegible = 1;
break;
}
}
if(!is_unelegible && !institution_won[i])
{
strcpy(golden_tickets_teams[golden_tickets_count], team_names[i]);
golden_tickets_count++;
strcpy(uneligible_institutions[uneligible_count], institutions[i]);
uneligible_count++;
}
}
}
printf("%d\n", golden_tickets_count);
for(int i=0; i<golden_tickets_count; i++)
{
printf("%s\n", golden_tickets_teams[i]);
}
return 0;
}
Diet Plan is one of the C programs developed to solve a competition problem. The program calculates the maximum number of days a person can adhere to a specific diet plan while managing limited resources: milk and biscuits.
The problem involves a sequence of daily milk requirements, where the program strategically allocates milk and substitutes biscuits to maximize the number of consecutive days the diet plan is followed. If the resources are exhausted, the program outputs the total number of successfully completed days.
#include <stdio.h>
int main()
{
int N = 0, M = 0, K = 0;
scanf("%d %d %d", &N, &M, &K);
int P[N+1] = {0};
for (int i = 0; i < N; i++)
{
scanf("%d", &P[i]);
}
int i = 0;
for(i=0; i<N; i++)
{
int max = 0;
int index = 0;
M -= P[i];
if(M >= 0)
{
continue;
}
else if(K > 0)
{
K--;
for(int j=0; j<=i; j++)
{
if(max < P[j])
{
max = P[j];
index = j;
}
}
M += max;
P[index] = 0;
}
else
{
printf("%d\n", i);
break;
}
}
if(i == N)
{
printf("%d\n", N);
}
return 0;
}
Horse Carts is one of the C programs I designed to solve a competition problem. The program calculates the maximum total value of treasures that can be transported using a limited number of horse carts, each with specific weight limits.
The problem involves matching treasures with carts based on their weights and values, optimizing for the highest value while adhering to the weight constraints of each cart. The program uses sorting and greedy selection strategies to achieve an efficient solution.
#include <stdio.h>
#include <stdlib.h>
struct Treasure
{
int weight;
int value;
int index;
int taken;
};
int compare(const void *a, const void *b)
{
return ((struct Treasure *)b)->value - ((struct Treasure *)a)->value;
}
int compareWeight(const void *a, const void *b)
{
return ((struct Treasure *)a)->weight - ((struct Treasure *)b)->weight;
}
void swap(struct Treasure *a, struct Treasure *b)
{
struct Treasure temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int N, M;
scanf("%d %d", &N, &M);
struct Treasure treasures[N];
for (int i=0; i<N; i++)
{
scanf("%d %d", &treasures[i].weight, &treasures[i].value);
treasures[i].index = i + 1;
treasures[i].taken = 0;
}
qsort(treasures, N, sizeof(struct Treasure), compare);
int S[M];
for (int j = 0; j < M; j++)
{
scanf("%d", &S[j]);
}
qsort(S, M, sizeof(int), compareWeight);
int total_treasure = 0;
for (int j=0; j<M; j++)
{
for (int i=0; i<N; i++)
{
if (S[j] >= treasures[i].weight && treasures[i].taken == 0)
{
total_treasure += treasures[i].value;
treasures[i].taken = 1;
break;
}
}
}
printf("%d\n", total_treasure);
return 0;
}
These are the professional skills and expertise I offer to assist individuals, teams, and businesses. These services have been honed through the development of both my soft and hard skills, gained through continuous learning and experience.
I am prepared to offer personalized education and mentorship tailored to individual learning styles and goals. My expertise spans key areas including Algorithms & Programming, UI/UX Design, and Software Development.
Why choose me?
I offer tailored web development services that cater to the specific needs of clients. My expertise encompasses front-end and back-end development, ensuring a comprehensive approach to building websites that are not only visually appealing but also functionally robust.
Why choose me?
I specialize in creating user-centered design solutions that enhance user experience and engagement. My approach involves understanding user needs and business goals to deliver intuitive and aesthetically pleasing interfaces.
Why choose me?
Feel free to reach out through any of the platforms below. I’d love to hear from you!
Or connect with me on social media:
Looking to learn more about my experience and skills? You can preview or download my latest CV below:
Feel free to connect with me, and I look forward to collaborating with you!