Problem 2133. -- 查验身份证2

2133: 查验身份证2

Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lld
Submitted: 811  Accepted: 311
[Submit][Status][Web Board]

Description

一个合法的身份证号码由17位数字(包含地区、出生日期和顺序编号)加1位校验码组成。
校验码的计算规则如下:
(1)首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,3};
(2)然后将计算的和对11取模得到值Z;
(3)最后按照以下关系对应Z值与校验码M的值:
     Z: 0 1 2 3 4 5 6 7 8 9 10
     M:9 8 7 6 5 4 3 2 1 0 X
现在给定一些身份证号码,请你编写程序验证校验码的有效性。

Input

多组测试数据,每组测试数据在一行中给出1个18位身份证号码。

Output

如果身份证号码正确,输出“OK”,否则输出“Error”。
只要前17位全为数字且最后一位校验码计算准确,则号码算正确。

Sample Input

111111111111111117
111111111111111110
222222222222222225
22222222222222222X
123456789012345677
135246789159357082
012345789632145974

Sample Output

OK
Error
OK
Error
Error
OK
Error

[Submit][Status][Web Board]