문제를 보자마자 입력 사이즈 떄문에 문제가 생기겠다는 생각이 들었고
두번째로 시간도 얼마 주지 않으므로 수학 공식을 써야 겠다고 느낌이 왔다.
저 등차수열의 합 공식이 기억 안 나서 검색해서 찾았다. 내가 이 공식을 다시 보게 될줄이야.
#include <iostream>
#include <algorithm>
using namespace std;
using i64 = long long;
int main() {
i64 a, l, n;
scanf("%lld", &a, &l);
printf("%lld", (max(a, l) - min(a, l) + 1)*(a+l)/2);
}
처음에 코드를 이렇게 작성했다. 그런데 값이 너무 크고 이상하게 나와서 난 max 함수가 문제있는 줄 알았다.
아.. 얘가 int형만 인자로 받아서 long long 타입을 넣어서 그렇구나.. 했는데 알고보니 scanf를 하나만 받아서 쓰래기값이 계산된 거였다.
#include <iostream>
#include <algorithm>
using namespace std;
using i64 = long long;
int main() {
i64 a, l;
scanf("%lld %lld", &a, &l);
printf("%lld", (max(a, l) - min(a, l) + 1)*(a+l)/2);
}
다시 수정했다.
max - min값은 수열의 개수를 구하기 위함이다
'백준' 카테고리의 다른 글
16673 고려대에는 공식 와인이 있다 (0) | 2019.10.02 |
---|---|
1297 TV크기 (0) | 2019.10.02 |
10707 수도요금 (0) | 2019.10.01 |
5532 방학 숙제 (0) | 2019.09.30 |
10162 전자레인지 (0) | 2019.09.30 |