# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
239632 | eohomegrownapps | Palindromic Partitions (CEOI17_palindromic) | C++14 | 503 ms | 35816 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll m = 1000000007;
ll p = 31;
ll pows[1000005];
void run(){
string s;
cin>>s;
ll n= s.size();
vector<ll> arr(n);
for (ll i = 0; i<n; i++){
arr[i]=s[i]-'a'+1;
}
vector<ll> ltor(n);//1,x+1,x^2+x+1...
//vector<ll> rtol(n);//...x^2+x+1,x+1,1
ltor[0]=arr[0];
for (ll i = 1; i<n; i++){
ltor[i]=(ltor[i-1]*p+arr[i])%m;
}
/*rtol[n-1]=arr[n-1];
for (ll i = n-2; i>=0; i--){
rtol[i]=(rtol[i+1]*p+arr[i])%m;
}*/
ll cnt = 0;
ll prevstart = 0;
for (ll i = 0; i<n; i++){
//check if prevstart to i forms a block
ll pref = ltor[i];
ll sub = prevstart==0?0:(ltor[prevstart-1]*pows[i-prevstart+1])%m;
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |