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());
}