天天看點

Polycarp and Div 3

​​D. Polycarp and Div 3​​

參考:​​1005D - Polycarp and Div 3​​

做這道題要明白一些東西:
  • 能夠被3整除的數,其數位之和為3的倍數
  • 如果把數分成一位一位,相鄰三個不為0位置一定能夠組成一個被3整除的數(111,112,121,122,211,212,221,222)

代碼:

// Created by CAD on 2020/1/11.
#include <bits/stdc++.h>
using namespace std;

const int maxn=2e5+5;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    string s;
    cin>>s;
    int cnt=0,sum=0,ans=0;
    for(auto i:s)
    {
        sum+=i-'0';
        cnt++;
        if(cnt==3||sum%3==0||(i-'0')%3==0)
            ans++,cnt=0,sum=0;
    }
    cout<<ans<<endl;
    return 0;
}