제출 #34055

#제출 시각아이디문제언어결과실행 시간메모리
34055mohammad_kilani회문 (APIO14_palindrome)C++14
0 / 100
733 ms14732 KiB
#include <bits/stdc++.h>
using namespace std;
#define mod 100007
#define oo 2000000000
const int N = 10040;
int p = 10007;
bitset < N > can[N] ;
int mp[N * 10];
char s[N];


int main() {
	//freopen("in.txt","r",stdin);
	scanf("%s",s);
	int n = strlen(s);
	long long ans = 0 ;
	for(int i=0;i<n;i++){
		int idx = i;
		int idx2 = i;
		while(idx >= 0 && idx2 < n && s[idx] == s[idx2]){
			can[idx][idx2] = true;
			idx--;
			idx2++;
		}
		idx = i;
		idx2 = i + 1;
		while(idx >= 0 && idx2 < n && s[idx] == s[idx2]){
			can[idx][idx2] = true;
			idx--;
			idx2++;
		}
	}
	for(int i=0;i<n;i++){
		int tmp = 0 ;
		int po = 1;
		for(int j=i;j<n;j++){
			tmp+=(((long long)s[j] * po) % mod);
			tmp %= mod;
			po = (long long)(p * po) % mod;
			int cur = ++mp[tmp];
			if(can[i][j] && ans < ((long long)cur * (j-i+1))){
				ans = ((long long)cur * (j-i+1));
			}
		}
	}
	printf("%lld\n",ans);
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

palindrome.cpp: In function 'int main()':
palindrome.cpp:14:15: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s",s);
               ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...