답안 #1096984

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1096984 2024-10-05T15:42:19 Z vjudge1 Palindromic Partitions (CEOI17_palindromic) C++14
0 / 100
0 ms 348 KB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mod=1e9+7,moi=1e6+111,base=311,mod1=1e9+7,base1=331;
string s,t;
int n;
bool check;
int Pow[moi],Hash[moi];
int gethash(int i,int j)
{
    return (Hash[j]-Hash[i-1]*Pow[j-i+1]%mod+mod)%mod;
}
void Input()
{
 int x;
 cin>>x;
 while(x--)
 {
 int res=0;
 cin>>s;
 n=s.size();
 s=" "+s;
 Pow[0]=1;
 Hash[0]=0;
 for(int i=1;i<=n;i++)
 {
    Pow[i]=Pow[i-1]*base%mod;
    Hash[i]=(Hash[i-1]*base%mod+s[i]-'a')%mod;
 }
 int l=1,r=n;
 for(int i=1,j=n;i<j;i++,j--)
 {
   ll hash1=gethash(l,i);
   ll hash2=gethash(j,r);
   if(hash1==hash2)
   {
     res+=2;
     l=i+1;
     r=j-1;
   }
 }
 if(l<=r)res++;
 cout<<res<<'\n';
 }
}
int main()
{
 ios_base::sync_with_stdio(false);
 cin.tie(NULL);
 cout.tie(NULL);
 if(fopen("a.inp","r"))
 {
 freopen("a.inp","r",stdin);
 freopen("a.out","w",stdout);
 }
 Input();
}

Compilation message

palindromic.cpp: In function 'int main()':
palindromic.cpp:53:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   53 |  freopen("a.inp","r",stdin);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~
palindromic.cpp:54:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   54 |  freopen("a.out","w",stdout);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -