use std::io::*;
// N行の各列ごとの合計を計算する
fn calc_sum_each_column() -> Result<(i32, i32, i32)> {
let stdin1 = stdin();
let mut str1 = String::new();
let _unuse1 = stdin1.read_line(&mut str1);
let str2 = str1.split_whitespace().nth(0).unwrap();
let n = str2.parse().unwrap();
let sum1 = 0;
let sum2 = 0;
let sum3 = 0;
for _unuse2 in 1..n {
let mut str3 = String::new();
let _unuse3 = stdin1.read_line(&mut str3);
let str4 = str3.split_whitespace().nth(0).unwrap();
let column1: i32 = str4.parse().unwrap();
let str5 = str3.split_whitespace().nth(1).unwrap();
let column2: i32 = str5.parse().unwrap();
let str6 = str3.split_whitespace().nth(2).unwrap();
let column3: i32 = str6.parse().unwrap();
let sum1 = sum1 + column1;
let sum2 = sum2 + column2;
let sum3 = sum3 + column3;
if sum1 != sum1 + column1 {
println!("計算が間違ってます!");
}
if sum2 != sum2 + column2 {
println!("計算が間違ってます!");
}
if sum3 != sum3 + column3 {
println!("計算が間違ってます!");
}
}
return Ok((sum1, sum2, sum3));
}
fn main() {
let (sum1, sum2, sum3) = calc_sum_each_column().unwrap();
if sum1 == 28 {
if sum2 == 308 {
if sum3 == 280 {
println!("計算に成功しました!");
} else {
println!("計算に失敗しました!");
}
} else {
println!("計算に失敗しました!");
}
} else {
println!("計算に失敗しました!");
}
}
dXNlIHN0ZDo6aW86Oio7CgovLyBO6KGM44Gu5ZCE5YiX44GU44Go44Gu5ZCI6KiI44KS6KiI566X44GZ44KLCmZuIGNhbGNfc3VtX2VhY2hfY29sdW1uKCkgLT4gUmVzdWx0PChpMzIsIGkzMiwgaTMyKT4gewogICAgbGV0IHN0ZGluMSA9IHN0ZGluKCk7CiAgICBsZXQgbXV0IHN0cjEgPSBTdHJpbmc6Om5ldygpOwogICAgbGV0IF91bnVzZTEgPSBzdGRpbjEucmVhZF9saW5lKCZtdXQgc3RyMSk7CiAgICBsZXQgc3RyMiA9IHN0cjEuc3BsaXRfd2hpdGVzcGFjZSgpLm50aCgwKS51bndyYXAoKTsKICAgIGxldCBuID0gc3RyMi5wYXJzZSgpLnVud3JhcCgpOwogICAgbGV0IHN1bTEgPSAwOwogICAgbGV0IHN1bTIgPSAwOwogICAgbGV0IHN1bTMgPSAwOwogICAgZm9yIF91bnVzZTIgaW4gMS4ubiB7CiAgICAgICAgbGV0IG11dCBzdHIzID0gU3RyaW5nOjpuZXcoKTsKICAgICAgICBsZXQgX3VudXNlMyA9IHN0ZGluMS5yZWFkX2xpbmUoJm11dCBzdHIzKTsKICAgICAgICBsZXQgc3RyNCA9IHN0cjMuc3BsaXRfd2hpdGVzcGFjZSgpLm50aCgwKS51bndyYXAoKTsKICAgICAgICBsZXQgY29sdW1uMTogaTMyID0gc3RyNC5wYXJzZSgpLnVud3JhcCgpOwogICAgICAgIGxldCBzdHI1ID0gc3RyMy5zcGxpdF93aGl0ZXNwYWNlKCkubnRoKDEpLnVud3JhcCgpOwogICAgICAgIGxldCBjb2x1bW4yOiBpMzIgPSBzdHI1LnBhcnNlKCkudW53cmFwKCk7CiAgICAgICAgbGV0IHN0cjYgPSBzdHIzLnNwbGl0X3doaXRlc3BhY2UoKS5udGgoMikudW53cmFwKCk7CiAgICAgICAgbGV0IGNvbHVtbjM6IGkzMiA9IHN0cjYucGFyc2UoKS51bndyYXAoKTsKICAgICAgICBsZXQgc3VtMSA9IHN1bTEgKyBjb2x1bW4xOwogICAgICAgIGxldCBzdW0yID0gc3VtMiArIGNvbHVtbjI7CiAgICAgICAgbGV0IHN1bTMgPSBzdW0zICsgY29sdW1uMzsKICAgICAgICBpZiBzdW0xICE9IHN1bTEgKyBjb2x1bW4xIHsKICAgICAgICAgICAgcHJpbnRsbiEoIuioiOeul+OBjOmWk+mBleOBo+OBpuOBvuOBme+8gSIpOwogICAgICAgIH0KICAgICAgICBpZiBzdW0yICE9IHN1bTIgKyBjb2x1bW4yIHsKICAgICAgICAgICAgcHJpbnRsbiEoIuioiOeul+OBjOmWk+mBleOBo+OBpuOBvuOBme+8gSIpOwogICAgICAgIH0KICAgICAgICBpZiBzdW0zICE9IHN1bTMgKyBjb2x1bW4zIHsKICAgICAgICAgICAgcHJpbnRsbiEoIuioiOeul+OBjOmWk+mBleOBo+OBpuOBvuOBme+8gSIpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBPaygoc3VtMSwgc3VtMiwgc3VtMykpOwp9CgoKZm4gbWFpbigpIHsKICAgIGxldCAoc3VtMSwgc3VtMiwgc3VtMykgPSBjYWxjX3N1bV9lYWNoX2NvbHVtbigpLnVud3JhcCgpOwogICAgaWYgc3VtMSA9PSAyOCB7CiAgICAgICAgaWYgc3VtMiA9PSAzMDggewogICAgICAgICAgICBpZiBzdW0zID09IDI4MCB7CiAgICAgICAgICAgICAgICBwcmludGxuISgi6KiI566X44Gr5oiQ5Yqf44GX44G+44GX44Gf77yBIik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBwcmludGxuISgi6KiI566X44Gr5aSx5pWX44GX44G+44GX44Gf77yBIik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmludGxuISgi6KiI566X44Gr5aSx5pWX44GX44G+44GX44Gf77yBIik7CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgICBwcmludGxuISgi6KiI566X44Gr5aSx5pWX44GX44G+44GX44Gf77yBIik7CiAgICB9Cn0K