# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
71729 | 2018-08-25T13:44:37 Z | the_general(#2235, dbtlswkdrnss) | 십자가 놓기 (FXCUP3_cross) | C++ | 3 ms | 368 KB |
#include<stdio.h> #define MOD 1000000007 long long int a(int); long long int b(int); long long int c(int); long long int d(int); int n; long long int A[4]; long long int B[4]; long long int C[4]; long long int D[4]; long long int a(int x){ if(x<3) return 0; if(x==3) return 1; return (((C[1]+A[0]+C[0])%MOD+B[1])%MOD+D[0])%MOD; } long long int b(int x){ if(x<3) return 0; if(x==3) return 1; return (((C[1]+B[0]+D[0])%MOD+A[1])%MOD+D[0])%MOD; } long long int c(int x){ if(x<3) return 0; if(x==3) return 1; return ((A[1]+B[1])%MOD+D[0])%MOD; } long long int d(int x){ if(x==1 || x==2){ D[3]=1; for(int i=0;i<3;i++){ D[i]=D[i+1]; } return 1; } A[3]=a(x); B[3]=b(x); C[3]=c(x); D[3]=(((A[3]+B[3])%MOD+C[3])%MOD+D[2])%MOD; for(int i=0;i<3;i++){ A[i]=A[i+1]; B[i]=B[i+1]; C[i]=C[i+1]; D[i]=D[i+1]; } return D[3]; } int main(){ scanf("%d", &n); for(int i=1;i<=n;i++){ d(i); } printf("%lld", D[3]); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Incorrect | 3 ms | 368 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Incorrect | 3 ms | 368 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Incorrect | 3 ms | 368 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |