# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
934244 | 2024-02-27T04:02:25 Z | UmairAhmadMirza | Palindromic Partitions (CEOI17_palindromic) | C++17 | 2 ms | 1880 KB |
#include <bits/stdc++.h> using namespace std; #define int long long int const N=305; int const mod=1e9+7; int const base=727; int dp[N][N]; int Hash[N]; int pw[N]; int pre(){ pw[0]=1; for(int i=1;i<N;i++) pw[i]=(pw[i-1]*base)%mod; } int make_hash(int l,int r){ l--; int h=((Hash[r]-((Hash[l]*pw[r-l])%mod))+mod)%mod; return h; } void solve(){ string s; cin>>s; int n=s.length(); int hsh=0; for(int i=0;i<n;i++){ hsh*=base; hsh%=mod; hsh+=s[i]; hsh%=mod; Hash[i+1]=hsh; } for(int i=1;i<=n;i++) for(int j=i;j<=n;j++) dp[i][j]=1; for(int l=1;l<n;l++) for(int i=1;i<=n-l;i++){ for(int x=0;x<((l+1)/2);x++) if(make_hash(i,i+x)==make_hash((i+l)-x,i+l)) dp[i][i+l]=max(dp[i][i+l],2+dp[(i+x)+1][((i+l)-x)-1]); } cout<<dp[1][n]<<endl; } signed main(){ pre(); int t; cin>>t; while(t--) solve(); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 2 ms | 1880 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 2 ms | 1880 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 2 ms | 1880 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Runtime error | 2 ms | 1880 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |