class
GFG
{
static
int
MAX =
1000005
;
static
class
OddEvenSums
{
int
e_sum;
int
o_sum;
};
static
OddEvenSums []sum =
new
OddEvenSums[MAX];
static
int
toInt(
char
x)
{
return
x -
48
;
}
static
void
preCompute(String x)
{
sum[
0
].e_sum = sum[
0
].o_sum =
0
;
for
(
int
i =
0
; i < x.length(); i++)
{
if
(i %
2
==
0
)
{
sum[i +
1
].e_sum = sum[i].e_sum + toInt(x.charAt(i));
sum[i +
1
].o_sum = sum[i].o_sum;
}
else
{
sum[i +
1
].o_sum = sum[i].o_sum + toInt(x.charAt(i));
sum[i +
1
].e_sum = sum[i].e_sum;
}
}
}
static
boolean
query(
int
l,
int
r)
{
int
diff = (sum[r +
1
].e_sum - sum[r +
1
].o_sum) -
(sum[l].e_sum - sum[l].o_sum);
return
(diff %
11
==
0
);
}
public
static
void
main(String[] args)
{
for
(
int
i =
0
; i < MAX; i++) {
sum[i] =
new
OddEvenSums();
}
String s =
"122164154695"
;
preCompute(s);
System.out.println(query(
0
,
3
) ?
1
:
0
);
System.out.println(query(
1
,
2
) ?
1
:
0
);
System.out.println(query(
5
,
9
) ?
1
:
0
);
System.out.println(query(
0
,
11
) ?
1
:
0
);
}
}