답안 #362641

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
362641 2021-02-03T19:47:04 Z shahriarkhan Palindromic Partitions (CEOI17_palindromic) C++14
100 / 100
284 ms 19292 KB
#include<bits/stdc++.h>
using namespace std ;

const int mx = 1e6 + 5 ;

const long long base = 31 , mod = 1e9 + 7 ;

long long pw[mx] ;

int main()
{
    int t ;
    scanf("%d",&t) ;
    pw[0] = 1 ;
    for(int i = 1 ; i < mx ; ++i)
    {
        pw[i] = (pw[i-1]*base)%mod ;
    }
    while(t--)
    {
        string s ;
        cin>>s ;
        int siz = s.size() , l = 0 , r = siz - 1 , p = 0 , ans = 0 ;
        long long h1 = 0 , h2 = 0 ;
        while(l<r)
        {
            h1 = ((h1*base)%mod + s[l++])%mod ;
            h2 = (h2 + (pw[p++]*s[r--])%mod)%mod ;
            if(h1==h2)
            {
                ans += 2 ;
                h1 = h2 = p = 0 ;
            }
        }
        if(h1 != h2 || l==r) ++ans ;
        printf("%d\n",ans) ;
    }
    return 0 ;
}

Compilation message

palindromic.cpp: In function 'int main()':
palindromic.cpp:13:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   13 |     scanf("%d",&t) ;
      |     ~~~~~^~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 9 ms 8172 KB Output is correct
2 Correct 9 ms 8172 KB Output is correct
3 Correct 10 ms 8192 KB Output is correct
4 Correct 10 ms 8192 KB Output is correct
5 Correct 9 ms 8172 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 9 ms 8172 KB Output is correct
2 Correct 9 ms 8172 KB Output is correct
3 Correct 10 ms 8192 KB Output is correct
4 Correct 10 ms 8192 KB Output is correct
5 Correct 9 ms 8172 KB Output is correct
6 Correct 9 ms 8172 KB Output is correct
7 Correct 9 ms 8172 KB Output is correct
8 Correct 11 ms 8172 KB Output is correct
9 Correct 9 ms 8172 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 9 ms 8172 KB Output is correct
2 Correct 9 ms 8172 KB Output is correct
3 Correct 10 ms 8192 KB Output is correct
4 Correct 10 ms 8192 KB Output is correct
5 Correct 9 ms 8172 KB Output is correct
6 Correct 9 ms 8172 KB Output is correct
7 Correct 9 ms 8172 KB Output is correct
8 Correct 11 ms 8172 KB Output is correct
9 Correct 9 ms 8172 KB Output is correct
10 Correct 12 ms 8172 KB Output is correct
11 Correct 11 ms 8152 KB Output is correct
12 Correct 12 ms 8172 KB Output is correct
13 Correct 12 ms 8172 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 9 ms 8172 KB Output is correct
2 Correct 9 ms 8172 KB Output is correct
3 Correct 10 ms 8192 KB Output is correct
4 Correct 10 ms 8192 KB Output is correct
5 Correct 9 ms 8172 KB Output is correct
6 Correct 9 ms 8172 KB Output is correct
7 Correct 9 ms 8172 KB Output is correct
8 Correct 11 ms 8172 KB Output is correct
9 Correct 9 ms 8172 KB Output is correct
10 Correct 12 ms 8172 KB Output is correct
11 Correct 11 ms 8152 KB Output is correct
12 Correct 12 ms 8172 KB Output is correct
13 Correct 12 ms 8172 KB Output is correct
14 Correct 284 ms 16904 KB Output is correct
15 Correct 156 ms 15136 KB Output is correct
16 Correct 263 ms 19292 KB Output is correct
17 Correct 151 ms 14840 KB Output is correct