Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
0.1s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Cho n số nguyên ~ a_i ~ . Hãy lập trình tìm ra số lượng dãy con đối xứng dài nhất
Input
Dòng 1 là số nguyên n (~ 1 \le n \le 10^3 ~),
Dòng 2 là n số nguyên ~ a_i ~ (~ | a_i | \le 10^4 ~).
Output
Là độ dài dãy con đối xứng dài nhất .
Sample
Input #1
8
1 2 3 3 2 1 5 7
Output #1
6
Bình luận
c++ full AC
include <bits/stdc++.h>
using namespace std;
void inout();
int manacher(const vector <int>& a);
int main()
void inout()
int manacher(const vector <int>& a)
include<bits/stdc++.h>
using namespace std; int a[10007], dem=0,n; bool dx(int n, int m) { int d; d=(m-n+1)/2; for(int i=0;i<=d;i++) { if(a[n+i]!=a[m-i]) return false; } return true; } int main(){
int n; cin>>n; for(int i=1 ;i<=n;i++) cin>>a[i]; for(int i=1;i<n;i++) for(int j=i+1;j<=n;j++) { if(dx(i,j)&&((j-i+1)>dem)) dem=j-i+1; } cout<<dem; return 0; }
include<bits/stdc++.h>
define ll long long
using namespace std; ll n,a[100006]; ll f[100006],b[100006],vt,l,r,kq=0; int main() { //freopen("1.inp","r",stdin); //freopen("1.out","w",stdout); iosbase::syncwith_stdio(false); cin.tie();cout.tie(); cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) { l=i,r=i; while(l>0 && r<=n) { if(a[l]==a[r]){kq=max(kq,r-l+1);l--;r++;} else break; } l=i;r=i+1; while(l>0 && r<=n) { if(a[l]==a[r]){kq=max(kq,r-l+1);l--;r++;} else break; } } cout<<kq; return 0; }
cho e xin test case 2 với ạ
Test case 4 là gì v mn
mik cx sai test 4