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
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
AC × 4
AC × 38
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