1866: 特殊和弦

内存限制:256 MB 时间限制:1 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:3 通过:2

题目描述

给定一个长度为N的整数数组A,表示一段音乐,每个数字A[i]表示一个音符,属于[1,88]
给定一个长度为C的和弦B,由C个不同的数字组成。
特殊和弦:长度等于C,且增加或减少特定数字等于和弦B,或者任意排序后等于B均为特殊和弦。
例如B=[4,6,7],则:
  • B本身为特殊和弦
  • [3,5,6]为特殊和弦(+1)
  • [6,8,9]为特殊和弦(-2)
  • [6,4,7]为特殊和弦(任意排序
  • [5,3,6]为特殊和弦(任意排序,然后+1)

对于数组A,求出所有子数组为和弦数量,和其对应的开始位置。

输入格式

第一行为正整数N,不超过20000
接下来N行,每行一个整数表示A[i],1≤A[i]≤88
接下来一行为正整数C,不超过10
接下来C行,每行一个整数表示B[i],1≤B[i]≤88,B[i]互不相同。

输出格式

输出第一行为正整数X,表示数组中存在X个和弦。
接下来X行,每行输出一个数字,表示第i个和弦的起点。
A数组下标从1开始,按照递增顺序输出。

输入样例 复制

6
1
8
5
7
9
10
3
4
6
7

输出样例 复制

2
2
4

数据范围与提示

来源:USACO 2011.11