Submission
Status:
--------------------
Score: 0
User: Angonnyyy
Problemset: ปฏิทินวันแม่
Language: c
Time: 0.001 second
Submitted On: 2024-09-26 01:14:34
#include <stdio.h>
#include <stdlib.h>
const int MONTHS[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
const int MOTHER_MONTH = 8;
const int MOTHER_DAY = 12;
int* manipulate_months(int *months, int m);
int main(int argc, char *argv[])
{
int m;
int d;
scanf("%d", &m);
scanf("%d", &d);
size_t month_size = sizeof(MONTHS) / sizeof(MONTHS[0]);
int months_difference = MOTHER_MONTH - m;
int* manipulated = manipulate_months(MONTHS, m);
// printf("size: %d\n\n", man[0]);
int days_apart = MOTHER_DAY;
for (int i = 1; i < *manipulated; i++)
{
// printf("%d\n", *(man + i));
days_apart += *(manipulated + i);
}
free(manipulated);
// printf("days apart: %d\n", days_apart);
int mod = (days_apart + d - 1) % 7;
printf("mod %d\n", mod);
return 0;
}
int* manipulate_months(int *months, int m)
{
int difference = MOTHER_MONTH - m;
// printf("difference: %d\n", difference);
int* new_months;
if (difference == 0)
{
new_months = malloc(sizeof(int));
new_months[0] = 0;
}
else if (difference > 0)
{
int adjusted_difference = difference + 1;
// printf("mallocing2\n");
new_months = malloc(sizeof(int) * adjusted_difference);
new_months[0] = adjusted_difference;
for (int i = 0; i < difference; i++)
{
*(new_months + 1 + i) = *(months + i + m - 1);
}
}
else
{
int adjusted_difference = difference + 1 + 12;
new_months = malloc(sizeof(int) * (adjusted_difference + 1));
new_months[0] = adjusted_difference;
int e = 0;
for (; e < 12 - m + 1; e++)
{
*(new_months + 1 + e) = *(months + e + m - 1);
}
for (int i = 0; i < MOTHER_MONTH; i++)
{
*(new_months + 1 + e + i) = *(months + i);
}
}
return new_months;
}