Description

给出一个数列,判断这个数列是否左右对称。

例如:给出四个数2 5 5 2,则这个数列对称;

给出五个数 1 2 3 1 2,则这个数列不对称。

Format

第一行:一个正整数 n(n<500)n(n<500),表示数据个数; 第二行: n 个不超过1000的正整数,依次表示数列中的每个数

Output

如果对称,输出Yes;否则输出No。

输入样例1

5
4 5 6 5 4

输出样例1

Yes

输入样例2

4
2 2 3 3

输出样例1

No

0Wrong Answer

using namespace std;
int c[1010],n=0;
int main(){
	int s;
	cin>>s;
	int y=0;
	for(int i=1;i<=s;i++)cin>>c[i];
	for(int i=1;i<=s;i++){
    if(i%2==1&&i>=s-i)break;
		if(c[i]==c[s-y])n++;
		y++;
	}
	if(s==(n-1)*2+1)cout<<"Yes";
	else cout<<"No";
	return 0; 
}

1 条评论

  • @ 2024-11-24 13:33:56
    #include<iostream>
    using namespace std;
    int c[1010],n=0;
    int main(){
    	int s;
    	cin>>s;
    	int y=0;
    	for(int i=1;i<=s;i++)cin>>c[i];
    	for(int i=1;i<=s;i++){
        if(i%2==1&&i>=s-i)break;
    		if(c[i]==c[s-y])n++;
    		y++;
    	}
    	if(s==(n-1)*2+1)cout<<"Yes";
    	else cout<<"No";
    	return 0; 
    }
    
    • 1