Problem:


  MathJax.Hub.Config({
    tex2jax: { inlineMath: [['\\(','\\)']] }
  });

Problem C: Mysterious Operator

ケー氏がいつものように某SNSを閲覧していると、
「解ける人はIQ150以上ある」という問題がタイムラインに流れてきた。
ケー氏はIQが150以上あるので、見るまでもなくその問題を一瞬で解いてしまった。
彼にしてみれば、このような問題なぞに頭を働かせる必要は無い。 コンピュータに任せれば充分なのである。

問題

問題には以下のような謎の数式が書かれていた。

\( 5 + 3 = 28 \)

\( 9 + 1 = 810 \)

\(8 + 6 = 214 \)

\( 5 + 4 = 19 \)

\( 2 + 2 = 4 \)

\( 15 + 8 = 723 \)

\( 7 + 9 = -216 \)

\( 3 + 0 = 33 \)

上記の演算子\( + \)について考えた時、ある正整数\( a \)について\( x \geq 0, y \geq 0 \)かつ\( x + y = a \)になるような整数のペア\( x,y \)の個数を求めよ。

入力

正整数\(a\)が一行で与えられる。

出力

\( a = x + y, x \geq 0, y \geq 0\)を満たすペア\((x,y)\)の個数を一行に出力せよ。

制約

\( 1 \leq a \leq 10^9(= 1000000000) \)

入出力例

入力1

19

出力1

1

\( 5 + 4 \)の1通りである。

入力2

22

出力2

2

\( 11 + 11 \)と、\( 2 + 0 \)の2通りが存在する。

入力3

1

出力3

0

\( 1 + 0 = 11 , 0 + 1 = -11 \)である。\( 1 \)は生成することができない。

入力4

101

出力4

0

\( 1 - 0 \)は\( 101 \)ではないことに注意すること。

入力5

660233276

出力5

4



Sample input:
19


Sample output:
1

Submission status: Accepted

Solution code:
a = input()
ans = 0
for i in range(1, len(a)):
  df = a[:i]
  sm = a[i:]
  if sm[0] == "0":continue
  df = int(df)
  sm = int(sm)
  if (df + sm) % 2 == 0 and sm >= df and (sm - df) % 2 == 0:
    ans += 1
if int(a) % 2 == 0:ans += 1
print(ans)

Submission status: Accepted

Solution code:
s = raw_input()
ans = 0
for i in range(len(s)):
  if s[i] == "0" and i != len(s) - 1:
    continue

  left  = int(s[:i]) if i else 0
  right = int(s[i:])

  if left <= right and left % 2 == right % 2:
    ans += 1
print ans

Submission status: Accepted

Solution code:
a = raw_input()
ans = 0
for i in range(len(a)):
  if a[i] == "0" and i != len(a) - 1:
    continue
  a1 = int(a[:i]) if i else 0
  a2 = int(a[i:])
  if a1 <= a2 and a1 % 2 == a2 % 2:
    ans += 1
print ans

Submission status: Accepted

Solution code:
a = list(input())
for i in range(len(a)):
    a[i] = int(a[i])

ans = 0
for i in range(len(a)):
    if a[i] == 0:
        continue
    
    c = 0
    for j in range(i):
        c *= 10
        c += a[j]
    
    d = 0
    for j in range(i, len(a)):
        d *= 10
        d += a[j]
    
    if (c + d) % 2 != 0:
        continue

    x = (c + d) // 2
    y = d - x

    if x >= 0 and y >= 0:
        ans += 1

print(ans)