寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

AtCoder Problems in C++ #004 - Cross Sum

AtCoder 競プロ典型90問の問題から、その提出コードの解答例です。
AtCoderとは、コンテストを通じて、プログラミングやアルゴリズムを学習するサービスです。
atcoder.jp
プログラミングコンテストとは、「与えられた問題をいかに素早く、正確に」解くことができるかを競うものです。
競技プログラミング」を略して、「競プロ」などと呼ばれています。

#004 - Cross Sum(★2)

atcoder.jp

僕が作成、提出したコードは、以下のとおりです。

/*
AtCoder Problems in C++
#004 - Cross Sum(★2)
https://atcoder.jp/contests/typical90/tasks/typical90_d
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
int main(void){
  ll h,w;
  cin>>h>>w;
  vector<vector<ll>> a(h,vector<ll>(w));
  for(ll i=0;i<h;i++){
    for(ll j=0;j<w;j++){
      cin>>a[i][j];
    }
  }
  vector<ll> hs(h,0),ws(w,0);
  for(ll i=0;i<h;i++){
    for(ll j=0;j<w;j++){
      hs[i]+=a[i][j];
      ws[j]+=a[i][j];
    }
  }
  for(ll i=0;i<h;i++){
    for(ll j=0;j<w;j++){
      cout<<hs[i]+ws[j]-a[i][j]<<(j==w-1 ? "\n" : " ");
    }
  }
  return 0;
}

AtCoder 競プロ典型90問は、AtCoderの問題を解くために必要な実力を付けるために作られた「典型問題」を解いていく企画です。
現在は常設ジャッジとなっているので、アカウントを登録すれば誰でも、いつでも問題を解くことができます。
https://atcoder.jp/contests/typical90