rkdwldnjs9128   2년 전

matrix_square()는 행렬곱 연산을 진행하는 부분입니다.

main()함수는 순서대로

1. 문제의 조건에 맞는 입력값 입력

2. b를 이진수로 만드는 과정입니다.(차후 역순으로 읽어옵니다.)

3. 위에서 구한 이진수에 따라 해당 계산을 진행합니다.

일단, 최초의 경우, 연산에 사용할 g를 초기화 합니다.

(0이면 항등원, 1이면 c로 복제)

이후, 읽어온 2진수값에 따라 (제곱)*A연산을 반복합니다.


이후, 계산이 끝난 g를 출력합니다.

이 과정에 따라 진행되고, 문제의 예시 3개는 문제 없이 통과 됩니다.

혹시 띄어쓰기나 줄 바꿈이 출력 조건을 벗어났을까 하여 죄다 if문으로 바꾸고

b의 범위를 상정해서 b도 long long으로 바꾸었고

1000=>0도 걸리지 않으려고

연산마다 >=1000 이면 %1000

하는 계산도 넣어뒀는데

퍼센트가 쭉 올라가다 막히는 것도 아니고, 초장부터 바로 틀려버리니 당황스럽네요.

질문 글들에서 볼 수 있는 반례는

2 1

1000 1000

1000 1000 

밖에 안 보여서 질문 글 써봅니다.

yeop77   2년 전

반례는 없구요

자료형이 long long이면 형식지정자는 %d가 아니라 %lld

rkdwldnjs9128   2년 전

세상에... 그런 기초적인 부분에서 실수했었네요 ㅋㅋㅋ

최초에 int로 했다가, 조건 때문에 long long으로 바꾸고

scanf를 안 고쳤었네요

정말 감사합니다 ㅠㅠ

댓글을 작성하려면 로그인해야 합니다.