Palindromic DNA
A DNA sequence is composed of a series of four possible nucleobases, namely Adenine, Guanine,
Thymine, and Cytosine; we will refer to each of these bases by their initial. For our
purposes, nucleobases have an associated cyclic “order”: A
is
followed by G
, which in turn is followed by T
, which is followed by
C
, which is followed by A
again. State-of-the-art research in
genomics has revealed the startling fact that many diseases are caused by certain
subsequences of bases not forming a palindromic sequence! Your mission as a leading
researcher at ICPC laboratories is to take a DNA string S and a series of subsets
P1, …, Pt of indices to characters
(nucleobases) in S, and transform S so that each of the restrictions of the
resulting string to P1, …, Pt are
palindromic. (The restriction of S to a subset
P = {i1, i2 …, ik}
of indices, where 0 ≤ i1 < i2 < … < ik < |S|,
is the string Si1Si2…Sik).
It is possible to inspect any base of S at will, but only three transformations can
be applied to a base:
- Leave it unaltered.
- Increase it by 1 in the cyclic order of nucleobases (e.g., turn
C
into
A
).
- Decrease it by 1 (e.g., turn
T
into G
).
Moreover, owing to limitations of current technology, it is impossible to modify two bases in
consecutive positions of the sequence. Is our goal achievable?
By way of example, consider DNA sequence AGTAT
. Number positions starting from
0, and suppose we have the three subsets P1 = {1, 4},
P2 = {0, 1}, and
P3 = {0, 2, 4}. One solution is to increase the first
character and decrease the last, yielding S' = GGTAG
. The
restrictions of S' to P1, P2, and
P3 are GG
, GG
, and GTG
,
respectively; all of them are palindromic.
One case where no solution is possible is when the string is CATGC
, and we
require the subsequences determined by positions {0, 3} and {3, 4} be palindromic.
Here, characters 3, 0, and 4 would all need to become a T
. But this entails
modifying consecutive characters 3 and 4, which is not allowed.
Input Specification
The first line of each test case has two integers N and T
(1 ≤ N ≤ 10 000,
1 ≤ T ≤ 6 000), the sequence length and number
of subsets to consider. The next line contains the DNA sequence of length N, all of
whose characters are in ACGT
. The subsets are described by the following
T lines. Each line starts with “L:
”, where
L (0 ≤ L ≤ N) is the number of
positions in the subset, and is followed by L distinct integers between 0 and
N – 1 in increasing order. Subsets may overlap partially or totally.
A blank line separates different test cases. The input is terminated by a line containing
“0 0
”.
Output Specification
In a single line per test case, print “YES
” if the task is solvable,
and “NO
” otherwise.
Sample Input
5 3
AGTAT
2: 1 4
2: 0 1
3: 0 2 4
5 3
CATGC
0:
2: 0 3
2: 3 4
0 0
download as text file
Output for Sample Input
YES
NO
download as text file
Original Problem
Southwestern Europe Regional Contest, 2010