fork(2) download
  1. use std::io::*;
  2.  
  3. // N行の各列ごとの合計を計算する
  4. fn calc_sum_each_column() -> Result<(i32, i32, i32)> {
  5. let stdin1 = stdin();
  6. let mut str1 = String::new();
  7. let _unuse1 = stdin1.read_line(&mut str1);
  8. let str2 = str1.split_whitespace().nth(0).unwrap();
  9. let n = str2.parse().unwrap();
  10. let sum1 = 0;
  11. let sum2 = 0;
  12. let sum3 = 0;
  13. for _unuse2 in 1..n {
  14. let mut str3 = String::new();
  15. let _unuse3 = stdin1.read_line(&mut str3);
  16. let str4 = str3.split_whitespace().nth(0).unwrap();
  17. let column1: i32 = str4.parse().unwrap();
  18. let str5 = str3.split_whitespace().nth(1).unwrap();
  19. let column2: i32 = str5.parse().unwrap();
  20. let str6 = str3.split_whitespace().nth(2).unwrap();
  21. let column3: i32 = str6.parse().unwrap();
  22. let sum1 = sum1 + column1;
  23. let sum2 = sum2 + column2;
  24. let sum3 = sum3 + column3;
  25. if sum1 != sum1 + column1 {
  26. println!("計算が間違ってます!");
  27. }
  28. if sum2 != sum2 + column2 {
  29. println!("計算が間違ってます!");
  30. }
  31. if sum3 != sum3 + column3 {
  32. println!("計算が間違ってます!");
  33. }
  34. }
  35. return Ok((sum1, sum2, sum3));
  36. }
  37.  
  38.  
  39. fn main() {
  40. let (sum1, sum2, sum3) = calc_sum_each_column().unwrap();
  41. if sum1 == 28 {
  42. if sum2 == 308 {
  43. if sum3 == 280 {
  44. println!("計算に成功しました!");
  45. } else {
  46. println!("計算に失敗しました!");
  47. }
  48. } else {
  49. println!("計算に失敗しました!");
  50. }
  51. } else {
  52. println!("計算に失敗しました!");
  53. }
  54. }
  55.  
Success #stdin #stdout 0s 14872KB
stdin
7 3
1 10 50
2 21 40
3 32 20
4 43 10
5 54 60
6 65 70
7 76 30
stdout
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算が間違ってます!
計算に失敗しました!