More actions
오늘의 문제
참가자
- 15이원준
코드
15이원준
#include<iostream>
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<N; i++){
int tmp;
cin>> tmp;
cout<< dp[tmp] <<endl;
}
}
박인서
곽정흠
아이디어
15이원준
- 미리 세개로 만들 수 있는 수를 구해둔 다음 input값의 결과로 출력했습니다.