1 #INCLUDE <. 비트 / stdc ++ H> 2 사용 스페이스 성병; 3 타입 정의 긴 긴 LL; 4 타입 정의 를 두 번 DB; 5 #DEFINE의 INF 0x3f3f3f3f 6 #DEFINE 위한 _for (난, A는 B (); 나는 B <; 나는 = (a) int로 난 ++) 7 #DEFINE에 대한 _rep (나는 A는, b) (INT I = ( a); I> B, I -) 8 인라인 판독 LL () 9 { 10 LL에서의 ANS = 0 ; 11 숯 CH = getchar가 (), 마지막 = ' ' ; (12) 동안(! isdigit에 (CH3)) = 최종 요구 CH, CH = getchar가 (); 13 일 동안 (isdigit에 (CH3)) = ANS (ANS << 1 ) + (ANS << 3 ) + CH - ' 0 ' , CH = getchar가 (); 14 의 경우 (최근 == ' - ' ) ANS = - ANS; 15 리턴 ANS; 16 } 17 인라인 빈 기록 (LL의 X) 18 { 19 일 경우 (X < 0 ), X = -x, putchar ( " - " ); 20 의 경우 (x> = 10) 물품 (X / 10 ); 21 putchar (X의 % 10 + ' 0 ' ); 22 } 23 INT의 N, 개조; 24 의 INT (DP) [ 2 ] [ 6002 ]; 25 INT 주 () 26 { 27 , n은 =) (판독 모드가 = (판독); (28) (DP)은 [ 0 ] [ 2 ] = 1 ; 29 _for (I, 3 , N + 1 ) 30 _for (j, 2 , I + 1) (31) DP [I & 1 ] [J] = (DP [I & 1 ] J = 1 ] + DP [(I- 1 ) (1) [I-J + 1 ]) % 개조; 32 의 INT RNT = 0 ; 33 _for (I, 2 , N + 1 ) 34 RNT = (RNT + DP [n은 1 [I]) % 개조; (35) 기록 ((RNT << 1 ) %의 개조); 36 반환 0 ; 37 }