Submission #3812402
Source Code Expand
#include <cstdio>
#include <cstring>
#include <algorithm>
#define MOD 1000000007
int n, m;
int p[111111];
int br[4][4] = {1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1};
int tr[4][4] = {1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 2};
struct Matrix{
int A[4][4];
void clear(){memset(A, 0, sizeof(A));}
void init(){for(int i = 0; i < 4; i++) A[i][i] = 1;}
Matrix operator* (const Matrix a)const{
static Matrix tmp;
tmp.clear();
for(int i = 0; i < 4; i++)
for(int k = 0; k < 4; k++)
for(int j = 0; j < 4; j++)
tmp.A[i][j] = (tmp.A[i][j] + 1ll * A[i][k] * a.A[k][j]) % MOD;
return tmp;
}
}ts, tb, Ans;
Matrix Pow(Matrix a, int b){
static Matrix tm;
tm.clear(), tm.init();
for(; b; b >>= 1, a = a * a)
if(b & 1) tm = tm * a;
return tm;
}
int main(){
scanf("%d %d", &n, &m);
memcpy(ts.A, tr, sizeof(tr));
memcpy(tb.A, br, sizeof(br));
for(int i = 1; i <= m; i++) scanf("%d", &p[i]);
p[++m] = n;
Ans.A[0][0] = 1;
int ls = 0;
for(int i = 1; i <= m; i++){
Ans = Ans * Pow(ts, p[i] - ls);
if(i != m) Ans = Ans * tb;
ls = p[i] + 1;
}
printf("%d\n", Ans.A[0][3]);
return 0;
}
Submission Info
Submission Time
2018-12-17 10:53:39+0900
Task
E - Placing Squares
User
Trestrals
Language
C++14 (GCC 5.4.1)
Score
1600
Code Size
1173 Byte
Status
AC
Exec Time
370 ms
Memory
512 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:36:24: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d", &n, &m);
^
./Main.cpp:39:48: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
for(int i = 1; i <= m; i++) scanf("%d", &p[i]);
^
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
1600 / 1600
Status
Set Name
Test Cases
Sample
sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
All
sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt
Case Name
Status
Exec Time
Memory
sample_01.txt
AC
1 ms
128 KB
sample_02.txt
AC
1 ms
128 KB
sample_03.txt
AC
1 ms
128 KB
sample_04.txt
AC
1 ms
128 KB
subtask_1_01.txt
AC
118 ms
256 KB
subtask_1_02.txt
AC
29 ms
128 KB
subtask_1_03.txt
AC
11 ms
256 KB
subtask_1_04.txt
AC
29 ms
384 KB
subtask_1_05.txt
AC
370 ms
512 KB
subtask_1_06.txt
AC
370 ms
512 KB
subtask_1_07.txt
AC
48 ms
512 KB
subtask_1_08.txt
AC
48 ms
512 KB
subtask_1_09.txt
AC
4 ms
128 KB
subtask_1_10.txt
AC
3 ms
128 KB
subtask_1_11.txt
AC
3 ms
128 KB
subtask_1_12.txt
AC
1 ms
128 KB
subtask_1_13.txt
AC
2 ms
128 KB
subtask_1_14.txt
AC
3 ms
128 KB
subtask_1_15.txt
AC
1 ms
128 KB
subtask_1_16.txt
AC
1 ms
128 KB
subtask_1_17.txt
AC
16 ms
256 KB
subtask_1_18.txt
AC
37 ms
512 KB
subtask_1_19.txt
AC
1 ms
128 KB
subtask_1_20.txt
AC
44 ms
512 KB
subtask_1_21.txt
AC
1 ms
128 KB
subtask_1_22.txt
AC
1 ms
128 KB
subtask_1_23.txt
AC
1 ms
128 KB
subtask_1_24.txt
AC
1 ms
128 KB
subtask_1_25.txt
AC
1 ms
128 KB
subtask_1_26.txt
AC
1 ms
128 KB
subtask_1_27.txt
AC
1 ms
128 KB
subtask_1_28.txt
AC
1 ms
128 KB
subtask_1_29.txt
AC
1 ms
128 KB
subtask_1_30.txt
AC
1 ms
128 KB