제출 #1120366

#제출 시각아이디문제언어결과실행 시간메모리
1120366vjudge1Palindrome-Free Numbers (BOI13_numbers)C++17
3.75 / 100
585 ms25932 KiB
#include <bits/stdc++.h>
using namespace std;
# define int long long

bool ok(string s)
{
  string scc;
  for(int i = 0; i < s.size() - 1; i++)
  {
    for(int j = i + 1; j < s.size(); j++)
    {
      string sc = "";
      for(int z = i; z <= j; z++) 
        sc += s[z];
      scc = sc;
      reverse(scc.begin(), scc.end());
      if(sc == scc){
        return 1;
      }
    }
  }
  return 0;
}

void solve()
{
  vector < string > v;
  set < string > npf;
  string s, sc;
  int a, b, cnt = 0, k;
  cin >> a >> b;
  for(int i = 9; i <= 10000000; i++)
  {
    s = to_string(i);
    sc = s;
    reverse(sc.begin(), sc.end());
    if(s == sc)
    {
      v.push_back(s);
      npf.insert(s);
    }
  }
  for(int i = 100; i <= 10000000; i += 100)
  {
    s = to_string(i);
    npf.insert(s);
  }
  for(int i = 0; i < v.size(); i++)
  {
    npf.insert(v[i] + "0");
    npf.insert(v[i] + "1");
    npf.insert(v[i] + "2");
    npf.insert(v[i] + "3");
    npf.insert(v[i] + "4");
    npf.insert(v[i] + "5");
    npf.insert(v[i] + "6");
    npf.insert(v[i] + "7");
    npf.insert(v[i] + "8");
    npf.insert(v[i] + "9");
    npf.insert("1" + v[i]);
    npf.insert("2" + v[i]);
    npf.insert("3" + v[i]);
    npf.insert("4" + v[i]);
    npf.insert("5" + v[i]);
    npf.insert("6" + v[i]);
    npf.insert("7" + v[i]);
    npf.insert("8" + v[i]);
    npf.insert("9" + v[i]);
  }
  for(auto i : npf)
  {
    k = stoi(i);
    if(k >= a && k <= b)
    {
      cnt++;
    }
  }
  cout << (b - a + 1) - cnt << endl;
}

signed main()
{
  int tt = 1;
  // cin >> tt;
  while(tt--)
    solve();
}

컴파일 시 표준 에러 (stderr) 메시지

numbers.cpp: In function 'bool ok(std::string)':
numbers.cpp:8:20: 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]
    8 |   for(int i = 0; i < s.size() - 1; i++)
      |                  ~~^~~~~~~~~~~~~~
numbers.cpp:10:26: 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]
   10 |     for(int j = i + 1; j < s.size(); j++)
      |                        ~~^~~~~~~~~~
numbers.cpp: In function 'void solve()':
numbers.cpp:48:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::__cxx11::basic_string<char> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |   for(int i = 0; i < v.size(); i++)
      |                  ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...