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
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
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 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