Submission
Status:
PPPPPPPPP-
Score: 90
User: kami
Problemset: เลขดวง
Language: cpp
Time: 0.001 second
Submitted On: 2024-10-16 21:58:59
#include <stdio.h>
#define MAX_WEEK 6
#define MAX_DAY 7
int b_i, b_j, calender[MAX_WEEK][MAX_DAY];
void calender_make(int d, int f){
int cur = 1, week = 0, dw = f-1; //cur = current day, dw = day of week etc. MON = 2-1 = 1 or [,1,,,,]
for(int i = 0; i < MAX_WEEK; i++){
for(int j = 0; j < MAX_DAY; j++){
calender[i][j] = 0;
}
}
while(cur <= d){
calender[week][dw] = cur;
cur++;
dw++;
if(dw == 7){
dw = 0;
week++;
}
}
}
void direction(int b){
for(int i = 0; i < MAX_WEEK; i++){
for(int j = 0; j < MAX_DAY; j++){
if(b == calender[i][j]){
b_i = i;
b_j = j;
}
}
}
}
int sum(){
int sum = 0;
if(b_i - 1 >= 0){ //up
sum += calender[b_i-1][b_j];
}
if(b_i + 1 <= MAX_WEEK){ //down
sum += calender[b_i+1][b_j];
}
if(b_j - 1 >= 0){ //left
sum += calender[b_i][b_j-1];
}
if(b_j + 1 >= 0){ //right
sum += calender[b_i][b_j+1];
}
return sum;
}
int main(){
int day, first, birth;
scanf("%d %d %d",&day,&first,&birth);
calender_make(day, first);
direction(birth);
printf("%d",sum());
}