Submission #394718

#TimeUsernameProblemLanguageResultExecution timeMemory
394718AnandPalindromes (APIO14_palindrome)C++14
23 / 100
1089 ms8292 KiB
#include <bits/stdc++.h>
using namespace std;
void expand(string str, int low, int high, auto& set)
{
    while (low >= 0 && high < str.length() && str[low] == str[high])
    {
        set.insert(str.substr(low, high - low + 1));

        low--, high++;
    }
}
int occ(string s , string f)
{
    int count = 0;
    size_t nPos = s.find(f, 0);
    while(nPos != string::npos)
    {
        count++;
        nPos = s.find(f, nPos + 1);
    }
    return count;
}
int main()
{
    string str;
    cin >> str;

    unordered_set<string> set;
    vector<int> res;
    for (int i = 0; i < str.length(); i++)
    {
        expand(str, i, i, set);

        expand(str, i, i + 1, set);
    }
    for(auto l = set.begin(); l != set.end(); l++)
    {
        string p = *l;
        int small = p.size();
        int count = occ(str , p);
        res.push_back(count*small);
    }

    sort(res.begin() , res.end());
    int sz = res.size();
    cout << res[sz-1];

    return 0;
}

Compilation message (stderr)

palindrome.cpp:3:44: warning: use of 'auto' in parameter declaration only available with '-fconcepts'
    3 | void expand(string str, int low, int high, auto& set)
      |                                            ^~~~
palindrome.cpp: In function 'int main()':
palindrome.cpp:30:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |     for (int i = 0; i < str.length(); i++)
      |                     ~~^~~~~~~~~~~~~~
palindrome.cpp: In instantiation of 'void expand(std::string, int, int, auto:1&) [with auto:1 = std::unordered_set<std::__cxx11::basic_string<char> >; std::string = std::__cxx11::basic_string<char>]':
palindrome.cpp:32:30:   required from here
palindrome.cpp:5:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    5 |     while (low >= 0 && high < str.length() && str[low] == str[high])
      |                        ~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...