AtCoder Beginner Contest 158 E問題 - Divisible Substring

Source

AtCoder Beginner Contest 158
問題文

問題概要

省略

解法

省略

cLayversion 20201229-1)のコード

C++に変換後のコードはこちら

//no-fwrite
int N, P;
char S[2d5+2];
ll cnt[1d5];
{
  ll res = 0;
  int mul = 1, cur = 0;

  rd(N,P,S);
  rep(i,N) S[i] -= '0';

  if(P==2 || P==5){
    rep(i,N) if(S[i]%P==0) res += i+1;
    wt(res);
    return 0;
  }

  cnt[cur]++;
  rrep(i,N){
    cur = (cur + mul * S[i]) % P;
    res += (cnt[cur]++);
    mul = mul * 10 % P;
  }
  wt(res);
}

Current time: 2021年09月27日22時53分25秒
Last modified: 2021年01月02日18時54分50秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC158 ABC_E
トップページに戻る

Logged in as: unknown user (not login)

ログイン: