Submission #1120202

#TimeUsernameProblemLanguageResultExecution timeMemory
1120202vjudge1Palindrome-Free Numbers (BOI13_numbers)C++17
12.50 / 100
1088 ms512 KiB
#include <bits/stdc++.h>

using namespace std;

#define int long long

const int sz=2e5+5;

const int INF=1e18;

const int MOD=1e9+7;

bool check(string s)
{
    //cout<<s<<endl;
    
    if(s.size()<4)
    {
        if(s.size()==1)
            return true;
        
        if(s.size()==2)
            return (s[0]!=s[1]);
        
        return (s[0]!=s[2] && s[1]!=s[2] && s[0]!=s[1]);
    }
    
    for(int i=0;i<s.size()-4;i++)
        if((s[i]==s[i+3] && s[i+1]==s[i+2]) || (s[i]==s[i+2] && s[i]!=s[i+3]))
            return false;
    
    return true;
}

void solve()
{
    int a,b,res=0;
    
    cin>>a>>b;
    
    for(int i=a;i<=b;i++)
    {
        string s=to_string(i);
        
        if(check(s))
            res++;
    }
    
    cout<<res;
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    int t=1;
    
    //cin>>t;
    
    while(t--)
    {
        solve();
    }
}

Compilation message (stderr)

numbers.cpp: In function 'bool check(std::string)':
numbers.cpp:28:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |     for(int i=0;i<s.size()-4;i++)
      |                 ~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...