[[TableOfContents]] = 오늘의 문제 = * [https://www.acmicpc.net/problem/10448|유레카이론] = 참가자 = * 15이원준 * 박인서 = 코드 = == 15이원준 == {{{ #include using namespace std; int main(){ int arr[46]; int dp[1001] = { 0, }; for(int i = 1; i<45; i++){ arr[i] = (i*(i+1))/2; } for(int i = 1; i<45; i++){ for(int j = 1; j<45 && arr[i] + arr[j] <= 1000; j++){ for(int k = 1;arr[i] + arr[j] + arr[k] <=1000 && k<45; k++){ dp[arr[i] + arr[j] + arr[k]] = 1; } } } int N; cin>> N; for(int i = 0; i> tmp; cout<< dp[tmp] < int a[50] = { 0, }; int check(int n) { for (int i = 1; a[i] <= n; i++) { for (int j = i; a[j] <= n - a[i]; j++) { for (int k = j; a[k] <= n - a[i] - a[j]; k++) { if (a[i] + a[j] + a[k] == n) return 1; } } } return 0; } int main() { int t; for (int i = 0, j = 0; j < 1000; i++, j += i) a[i] = j; std::cin >> t; while (t--) { int n; std::cin >> n; std::cout << check(n) << std::endl; } return 0; } }}} == 곽정흠 == = 아이디어 = == 15이원준 == * 미리 세개로 만들 수 있는 수를 구해둔 다음 input값의 결과로 출력했습니다. == 박인서 == * 1000까지의 삼각 수들을 구한 뒤 입력 값에 따라 3중 for문을 돌려가며 확인한다. == 곽정흠 ==