Submission #1120207

#TimeUsernameProblemLanguageResultExecution timeMemory
1120207vjudge1Palindrome-Free Numbers (BOI13_numbers)C++17
25 / 100
1093 ms131072 KiB
#include <bits/stdc++.h>
#define all(v) v.begin(), v.end()
#define int long long
using namespace std;

const int mod = 1e9 + 7;
map<string, bool> mp;

bool pal(string s)
{
    int i = 0, j = s.size() - 1;
    while(i < j)
    {
        if(s[i] != s[j]) return 0;
        i++, j--;
    }
    return 1;
}

int f(int x)
{
    string s = to_string(x);
    if(mp.find(s) != mp.end()) return mp[s];
    for(int i = 0; i < s.size(); i++)
    {
        string t = "";
        int j = i;
        t += s[j++];
        while(j < s.size())
        {
            t += s[j++];
            if(pal(t)) return mp[s] = mp[t] = 0;
        }
    }
    return mp[s] = 1;
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    
    int l, r, ans = 0;
    cin >> l >> r;
    while(l <= r)
    {
        ans += f(l++);
    }
    cout << ans;
}  

Compilation message (stderr)

numbers.cpp: In function 'long long int f(long long int)':
numbers.cpp:24:22: 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]
   24 |     for(int i = 0; i < s.size(); i++)
      |                    ~~^~~~~~~~~~
numbers.cpp:29:17: 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]
   29 |         while(j < s.size())
      |               ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...