답안 #545818

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
545818 2022-04-05T13:59:19 Z Ai7081 Palindromic Partitions (CEOI17_palindromic) C++17
0 / 100
4 ms 2260 KB
#include <bits/stdc++.h>
using namespace std;

const int mod = 1e9+7;
const int key = 31;

int t, out, l, r, now, po[500005];
string s;
stack<char> st;
bool ok;

int main() {
    ios_base::sync_with_stdio(false); cin.tie(0);
    po[0] = 1;
    for (int i=1; i<=500000; i++) po[i] = (po[i-1] * key) % mod;
    cin >> t;
    while (t--) {
        cin >> s;
        ok = false;
        out = l = r = now = 0;
        for (int i=0; i<s.size()/2; i++) {
            l *= key, l += (s[i]-'a'+1), l %= mod;
            r += (s[s.size()-1-i]-'a'+1)*po[now], r %= mod;
            if (i == s.size()/2-1 && l == r) ok = true;
            if (l == r) now = l = r = 0, out += 2;
            else now++;
        }
        (s.size()%2 || !ok) ? cout << out+1 << endl : cout << out << endl;
    }
    return 0;
}

Compilation message

palindromic.cpp: In function 'int main()':
palindromic.cpp:21:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |         for (int i=0; i<s.size()/2; i++) {
      |                       ~^~~~~~~~~~~
palindromic.cpp:24:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |             if (i == s.size()/2-1 && l == r) ok = true;
      |                 ~~^~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 2260 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 2260 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 2260 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 2260 KB Output isn't correct
2 Halted 0 ms 0 KB -