[Mảng 1 Chiều Cơ Bản]. Bài 17. Mảng đối xứng

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Nguồn bài:
28Tech
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho mảng số nguyên A[] gồm N phần tử, kiểm tra xem mảng có đối xứng hay không?


Đầu vào

Dòng đầu tiên là số nguyên dương N

Dòng thứ 2 gồm N số nguyên viết cách nhau một vài khoảng trắng


Giới hạn

1<=N<=10^6

0<=A[i]<=10^6


Đầu ra

In ra YES hoặc NO tương ứng với mảng đối xứng hoặc không.


Ví dụ :

Input 01
5
1 2 3 2 1
Output 01
YES

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    Lam_Thang2014  đã bình luận lúc 22, Tháng 7, 2026, 13:40

    include <iostream>

    include <vector>

    using namespace std;

    int main() {

    ios::syncwithstdio(false);

    cin.tie(nullptr);

    int num; cin >> num;

    vector<int> vec(num);

    for (int &ele : vec) {

    cin >> ele;

    }

    for (int idx = 0; idx <= num / 2; idx++) {

    if (vec[idx] != vec[num - 1 - idx]) {

    cout << "NO";

    return 0; }

    }

    cout << "YES";

    }


  • 0
    Hung123456  đã bình luận lúc 7, Tháng 7, 2026, 14:45

    full AC

    include <bits/stdc++.h>

    using namespace std;

    int main() { iosbase::syncwith_stdio(false); cin.tie(NULL); int n;cin>>n; int a[n]; map<int,int>mp; for (int i=0;i<n;i++){ cin>>a[i]; mp[a[i]]++; } int sum=0; if (n%2==0){ for (int i=0;i<n;i++){ if (mp[a[i]]%2==1){ sum=1; break; } } if (sum==0){ cout<<"YES"; } else cout<<"NO"; } else { for (int i=0;i<n;i++){ if (mp[a[i]%2==1]){ sum++; } } if (sum==1){ cout<<"YES"; } else cout<<"NO"; } return 0; }


  • 0
    minhduc2803  đã bình luận lúc 20, Tháng 6, 2026, 10:32

    ý tưởng cho ae nào bí nhé : FULL AC:

    đầu tiên ae tạo 1 biến cờ hiệu đặt giá trị là 1 hoặc true cũng được, sau đó ae tạo 1 vòng lặp chạy từ 0 tới n/2 nhé, vì chỉ cần tới nửa mảng là đủ để kiếm tra rồi, sau đó ae kiểm tra xem phần tử i có khác với a[n-1-i] ko, n-1-i là phần tử đối diện của phần tử i nhé VD: i = 0 thì n - 1 - i = 5 - 1 - 0 là bằng 4 thì nó đối diện với i, nếu khác thì ae đặt biến cờ hiệu thành 0 hoặc false nhé, rồi ae break câu lệnh luôn vì đã tìm ra được cặp khác nhau rồi thì mảng ko có đối xứng nữa cho nên lặp thêm cũng chỉ tốn thời gian, rồi ae ở ngoài vòng lặp kiểm tra xem biến cờ hiệu có bằng false ko nếu bằng thì cout ra no , còn ko thì cout ra yes.


  • 0
    Kelvin2206  đã bình luận lúc 31, Tháng 5, 2026, 3:09

    include <bits/stdc++.h>

    using namespace std;
    
    typedef long long ll;
    typedef unsigned long long ull;
    typedef long double ld;
    typedef string str;
    typedef vector<ll> vi;
    typedef pair<ll,ll> pi;
    
    #define pb push_back
    #define all(x) x.begin(), x.end()
    #define el '\n'
    
    const ll INF=1e18, MOD=1e9+7, MXA=1e5+5;
    
    ll n;
    vi v, v0;
    
    void Solve() {
        cin >> n; v.resize(n); for(auto &x:v) cin >> x;
        for(ll i=n-1; i>=0; --i) v0.pb(v[i]);
    
        for(ll i=0; i&lt;n; ++i) {
            if(v[i]==v0[i]) {
                if(i==n-1) cout << "YES";
            }
            else {
                cout << "NO"; break;
            }
        }
    }
    
    int main() {
        //freopen("", "r", stdin); freopen("", "w", stdout);
        ios::sync_with_stdio(0); cin.tie(nullptr);
    
        ll tests=1; //cin >> tests;
        while(tests--) Solve();
    }
    

  • -2
    trinhdinhhoan2k12  đã bình luận lúc 3, Tháng 5, 2026, 13:39

    67


  • -3
    trinhdinhhoan2k12  đã bình luận lúc 3, Tháng 5, 2026, 13:30

    67


  • -1
    kietne  đã bình luận lúc 13, Tháng 12, 2025, 2:15

    HAI CON TRỎ LÀ KHOẺ NHÉ AE

    include <bits/stdc++.h>

    using namespace std; using ll = long long;

    int main() { ios::syncwithstdio(false); cin.tie(nullptr); // viết code ở đây int n ; cin >> n; int a[n]; for (auto &i : a) cin >> i; int i=0,j=n-1; bool done=false; while(i<=j){ if(a[i]!=a[j]) done=true; i++; j--; } if(done) cout << "NO"; else{ cout << "YES"; } return 0; }


  • 0
    naipret  đã bình luận lúc 18, Tháng 9, 2025, 7:28
    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    int main() {
      ios::sync_with_stdio(false);
      cin.tie(nullptr);
    
      int num;
      cin >> num;
    
      vector<int> vec(num);
      for (int &ele : vec) {
        cin >> ele;
      }
    
      for (int idx = 0; idx <= num / 2; idx++) {
        if (vec[idx] != vec[num - 1 - idx]) {
          cout << "NO";
          return 0;
        }
      }
      cout << "YES";
    }
    

  • 0
    id_07  đã bình luận lúc 6, Tháng 9, 2025, 3:03
    #include <bits/stdc++.h>
    using namespace std;
    int main() {
        int n;cin>>n;
        int a[n];
        for(int i=0;i&lt;n;i++) cin>>a[i];
    bool f=true;
    for(int i=0;i&lt;n/2;i++) {
        if(a[i]!=a[n-i-1]) f=false;
    }
    if(!f) cout << "NO";
    else cout <<"YES";
    }
    

  • 1
    hngoc  đã bình luận lúc 4, Tháng 7, 2025, 14:26
    import math
    n=input()
    a=input().split()
    b=a.copy()
    b.reverse()
    print('YES' if a==b else 'NO')
    

  • 0
    bengokyeuanh99  đã bình luận lúc 30, Tháng 5, 2025, 18:59

    include <cstdio>

    constexpr int MAXN = 1000000; int arr[MAXN];

    int main() { int n; if (scanf("%d", &n) != 1) return 1;

    for (int i = 0; i < n; ++i)
        if (scanf("%d", &arr[i]) != 1) return 1;
    
    for (int i = 0; i < n / 2; ++i)
        if (arr[i] != arr[n - 1 - i]) {
            puts("NO");
            return 0;
        }
    
    puts("YES");
    return 0;
    

    }


  • 4
    VDev  đã bình luận lúc 18, Tháng 1, 2025, 13:08

    FULL AC

    #include <bits/stdc++.h>
    #include <iomanip>
    #include <cmath>
    #include <climits>
    #define ll long long
    using namespace std;
    ll a[10000011];
    ll cnt = 0, s = 0;
    
    int main(){
        ll n;
        cin >> n;
        bool check = true;
        for(ll i = 0; i < n; i++){
            cin >> a[i];
        }
        for(ll i = 0; i < n / 2; i++){
                if(a[i] != a[n - i - 1]){
                    check = false;
                    break;
                }
        }
        if(check){
                cout << "YES";
        }else{
             cout << "NO";
        }
        return 0;
    }
    

  • -1
    tandatha140904  đã bình luận lúc 25, Tháng 12, 2024, 16:50

    include <bits/stdc++.h>

    using namespace std; int doixung(int a[], int n) { int mid = n / 2, i = 1, j = n; while (i <= mid && j > mid) { if (a[i] == a[j]) { i++; j--; } else return 0; } return 1; } int main() { int n; cin >> n; int a[n]; for (int i = 1; i <= n; i++) { cin >> a[i]; } if (doixung(a, n)) { cout << "YES"; } else cout << "NO"; return 0; }


  • -1
    dangsp07  đã bình luận lúc 12, Tháng 12, 2024, 11:41

    include <iostream>

    include <vector>

    using namespace std;

    int main() { int n; cin >> n; vector<int> a(n); for (int &x : a) cin >> x; for (int i = 0; i < n / 2; i++) { if (a[i] != a[n - i - 1]) { cout << "NO\n"; return 0; } }

    cout << "YES\n";
    return 0;
    

    }


  • 0
    janekdao  đã bình luận lúc 30, Tháng 11, 2024, 8:27

    hay


  • -2
    ichingu  đã bình luận lúc 8, Tháng 11, 2024, 12:50


  • -5
    Nakbosstv  đã bình luận lúc 16, Tháng 9, 2024, 15:00

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -7
    NTH11112222  đã bình luận lúc 12, Tháng 6, 2024, 14:55

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -8
    Itachi  đã bình luận lúc 4, Tháng 5, 2024, 15:10

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -17
    2vhoc7  đã bình luận lúc 1, Tháng 4, 2024, 16:17

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.