using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Baekjoon
{
class Program
{
static void Main(string[] args)
{
long n = long.Parse(Console.ReadLine());
long result = (1 + 4 * n + (3 * n * (n - 1)) / 2) % 45678;
Console.WriteLine(result);
}
}
}
- 문제 조건
- N의 범위가 다음과 같으므로
1 ≤ N ≤ 10,000,000
자료형은 넉넉하게 long
을 선택한다.
- int 자료형 범위 :
–2,147,483,648 ~ 2,147,483,647
- long 자료형 범위 :
–9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
- 내가 찾은 규칙
- 가장 처음은
1(파란색 점) + (오각형 꼭짓점 수 - 1) * 단계수(=n)
- 단계를 거듭할 수록 위 그림에서 보이듯 (1) 빨간점은
(오각형 꼭짓점 수 - 1)
는 단계수(=n)
에 비례해서 늘어나고 (2) 초록점은 `(오각형의 세 변) * (단계수-1)까지 계속 누적하며 늘어난다.
- 위 규칙을 수식으로 정리하면
1+4∗n+k=1∑n3(k−1) =1+4∗n+23n(n−1)