Submission #1814180
Source Code Expand
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
typedef long long ll ;
#define rep(i, a, b) for (int i = a; i <= b; ++ i)
const int mo = 1e9 + 7 ;
const int G[4][4] = {{2, 1, 1, 1}, {1, 1, 0, 1}, {1, 0, 1, 1}, {1, 0, 0, 1}} ;
using namespace std ;
int a[4][4], b[4][4], c[4][4], n, m ;
void upd(int &x, int y) {
x = (x + y) % mo ;
}
void mul(const int A[4][4], const int B[4][4], int (&ret)[4][4]) {
rep(i, 0, 3) rep(j, 0, 3) c[i][j] = 0, a[i][j] = A[i][j], b[i][j] = B[i][j] ;
rep(i, 0, 3) rep(j, 0, 3) rep(k, 0, 3) upd(c[i][j], (ll) a[i][k] * b[k][j] % mo) ;
rep(i, 0, 3) rep(j, 0, 3) ret[i][j] = c[i][j] ;
}
int main() {
scanf("%d%d", &n, &m) ;
int x, las = 0, f[4], tmp[4], ans[4][4], w[4][4] ;
rep(i, 0, 3) rep(j, 0, 3) ans[i][j] = 0 ;
rep(i, 0, 3) ans[i][i] = 1 ;
rep(t, 1, m + 1) {
if (t <= m) scanf("%d", &x) ; else x = n ;
int b = x - 1 - las ;
rep(i, 0, 3) rep(j, 0, 3) w[i][j] = G[i][j] ;
for ( ; b; b /= 2) {
if (b & 1) mul(ans, w, ans) ;
mul(w, w, w) ;
}
if (t > m) break ;
rep(i, 0, 3) rep(j, 0, 3) w[i][j] = G[i][j] ;
rep(i, 0, 3) -- w[i][0] ;
mul(ans, w, ans) ;
las = x ;
}
int res = 0 ;
rep(i, 0, 3) upd(res, ans[0][i]) ;
printf("%d\n", (res + mo) % mo) ;
return 0 ;
}
Submission Info
Submission Time
2017-11-28 17:19:02+0900
Task
E - Placing Squares
User
mjy0724
Language
C++14 (GCC 5.4.1)
Score
1600
Code Size
1319 Byte
Status
AC
Exec Time
581 ms
Memory
256 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:21: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:26:31: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
if (t <= m) scanf("%d", &x) ; else x = n ;
^
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
256 KB
sample_02.txt
AC
1 ms
256 KB
sample_03.txt
AC
1 ms
256 KB
sample_04.txt
AC
1 ms
256 KB
subtask_1_01.txt
AC
185 ms
256 KB
subtask_1_02.txt
AC
47 ms
256 KB
subtask_1_03.txt
AC
11 ms
256 KB
subtask_1_04.txt
AC
26 ms
256 KB
subtask_1_05.txt
AC
581 ms
256 KB
subtask_1_06.txt
AC
581 ms
256 KB
subtask_1_07.txt
AC
43 ms
256 KB
subtask_1_08.txt
AC
43 ms
256 KB
subtask_1_09.txt
AC
7 ms
256 KB
subtask_1_10.txt
AC
6 ms
256 KB
subtask_1_11.txt
AC
2 ms
256 KB
subtask_1_12.txt
AC
2 ms
256 KB
subtask_1_13.txt
AC
3 ms
256 KB
subtask_1_14.txt
AC
5 ms
256 KB
subtask_1_15.txt
AC
1 ms
256 KB
subtask_1_16.txt
AC
2 ms
256 KB
subtask_1_17.txt
AC
14 ms
256 KB
subtask_1_18.txt
AC
31 ms
256 KB
subtask_1_19.txt
AC
1 ms
256 KB
subtask_1_20.txt
AC
38 ms
256 KB
subtask_1_21.txt
AC
1 ms
256 KB
subtask_1_22.txt
AC
1 ms
256 KB
subtask_1_23.txt
AC
1 ms
256 KB
subtask_1_24.txt
AC
1 ms
256 KB
subtask_1_25.txt
AC
1 ms
256 KB
subtask_1_26.txt
AC
1 ms
256 KB
subtask_1_27.txt
AC
1 ms
256 KB
subtask_1_28.txt
AC
1 ms
256 KB
subtask_1_29.txt
AC
1 ms
256 KB
subtask_1_30.txt
AC
1 ms
256 KB