제출 #1158993

#제출 시각아이디문제언어결과실행 시간메모리
1158993ocasuPalindromic Partitions (CEOI17_palindromic)C++20
60 / 100
10093 ms2364 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long


int n; 
string s;

bool equals(int l1, int r1, int l2, int r2){
    string s1 = "", s2 = "";
    for (int i=l1; i<=r1; i++) s1 += s[i];
    for (int i=l2; i<=r2; i++) s2 += s[i];
    return s1==s2;
}

signed main(){
    int t; cin>>t;
    while(t--){
        cin>>s;
        n=(int)(s.length());
        s=" "+s;
        int ans=0;
        for (int i=1; i<=(n+1)/2; i++){
            int r=i;
            while (r<=n-i+1 and equals(i,r,n-r+1,n-i+1)==false){
                r++;
            }
            //cout<<"I "<<i<<' '<<r<<'\n';
            ans+=2;
            if (i==n-r+1 and r==n-i+1) ans--;
            
            i=r;
        }
        cout<<ans<<'\n';
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...