見出し画像

アルゴリズム道中記〜20240406〜


A Divisible

#include <bits/stdc++.h>
#define print(x) cout << x << endl;
#define rep(i, s, n) for (long long i = s; i < (long long)(n); i++)
using namespace std;
using ll = long long;

int main() {
  ll N, K;
  cin >> N >> K;
  rep (i, 0, N)
  {
    ll a;
    cin >> a;
    if (not (a % K)) cout << a / K << " ";
  }
}

D - Counting Ls

#include <bits/stdc++.h>
#define print(x) cout << x << endl;
#define rep(i, s, n) for (long long i = s; i < (long long)(n); i++)
using namespace std;
using ll = long long;

int main() {
  int N;
  cin >> N;
  vector<string> s;
  vector<int> bi(N, 0), bj(N, 0);
  rep (i, 0, N)
  {
    string S;
    cin >> S;
    s.push_back(S);
    rep (j, 0, N) 
    {
      if (s[i][j] == 'o')
      {
        bi[i]++;
        bj[j]++;
      }
    }
  }

  ll ans = 0;
  rep (i, 0, N)
  {
    rep(j, 0, N)
    {
      if (s[i][j] == 'o')
      {
        ans += (bi[i]-1) * (bj[j]-1);
      }
    }
  }
  print(ans);
}

残念ながら、自力で解くことはできませんでした。数をカウントするだけでよいとは…

この記事が気に入ったらサポートをしてみませんか?