[Mảng 1 Chiều Cơ Bản]. Bài 18. Liền kề trái dấu

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

Tác giả:
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ử, hãy liệt kê theo thứ tự xuất hiện các số thỏa mãn có ít nhất 1 số trái dấu với nó đứng cạnh nó.


Đầ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

2<=N<=10^6

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


Đầu ra

In ra kết quả của bài toán


Ví dụ :

Input 01
10
1 2 -3 -4 5 -6 7 8 9 10
Output 01
2 -3 -4 5 -6 7

Bình luận

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



  • 0
    aduangzi  đã bình luận lúc 24, Tháng 6, 2025, 12:49

    cứu cứu em với đúng được mỗi 1 test

    include <bits/stdc++.h>

    using namespace std; using ll = long long;

    bool kt(int a,int b) { if (a * b < 0) return true; else return false; } int main(){ iosbase::syncwith_stdio(false); cin.tie(nullptr); freopen("vao.inp","r",stdin); freopen("ra.out","w",stdout); int n; cin >> n; int a[n]; for (int i = 0; i < n; i++) cin >> a[i]; int f[n]; memset(f,0,sizeof(f)); if (kt(a[0],a[1])) f[0] = 1; if (kt(a[n - 1], a[n - 2])) f[n - 1] = 1; for (int i = 1; i < n - 1; i++) { if (kt(a[i],a[i-1]) || kt(a[i],a[i+1])) f[i] = 1; } for (int i = 0; i < n; i++) { if (f[i]) cout << a[i] << " "; } return 0; }


    • 0
      dungdeptrai  đã bình luận lúc 26, Tháng 6, 2025, 2:31

      Hàm kt phải sửa lại chỗ này là if(1ll * a * b). Bị tràn số đấy, ép kiểu sang long long


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

    import sys

    def isoppositesign(a, b): return a * b < 0

    def findoppositesignneighbors(arr): result = [] n = len(arr) for i in range(n): if i > 0 and isoppositesign(arr[i], arr[i-1]): result.append(arr[i]) elif i < n - 1 and isopposite_sign(arr[i], arr[i+1]): result.append(arr[i]) return result

    def main(): data = sys.stdin.read().split() n = int(data[0]) arr = list(map(int, data[1:n+1])) output = findoppositesign_neighbors(arr) print(' '.join(map(str, output)))

    if name == "main": main()


  • 0
    phnam212  đã bình luận lúc 22, Tháng 1, 2025, 3:08

    cực dễ hiểu cho ae nha

    include<bits/stdc++.h>

    using namespace std;

    int main(){

    int n;cin>>n;
    vector&lt;long long> v(n);
    for(int i=0;i < n;i++){
        cin>>v[i];
    }
    vector<bool> printed(n, false);
    int i=0;
    while(i<(n-1)){
        if((v[i]*v[i+1] < 0)){
             if (!printed[i]) {
                cout<< v[i]<<" ";
                printed[i] = true;
            }
            if (!printed[i + 1]) {
                cout<< v[i+1]<<" ";
                printed[i + 1] = true;
            }
        }
        i++;
    }
    return 0;
    

    }


  • -1
    VDev  đã bình luận lúc 17, Tháng 1, 2025, 12:35 sửa 6

    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;
        for(ll i = 1; i <= n; i++){
            cin >> a[i];
        }
        for(ll i = 1; i <= n; i++){
        if((a[i] < 0 && a[i + 1] > 0) || (a[i] > 0 && a[i + 1] < 0) || (a[i - 1] < 0 && a[i] > 0) || (a[i - 1] > 0 && a[i] < 0)){
            cout << a[i] << " ";
        }
        }
        return 0;
    }
    

  • 0
    Dungx_2008  đã bình luận lúc 24, Tháng 11, 2024, 13:51

    include <bits/stdc++.h>

    define N int(1e6)

    using namespace std; int n,a[N]; int main() { cin >> n; for(int i=1;i<=n;i++) cin >> a[i]; if(a[1] > 0 && a[2] < 0 || a[1] < 0 && a[2] > 0) cout << a[1] << " "; for(int i=2;i<n;i++) { if(a[i] > 0) { if(a[i-1] <0 || a[i+1] < 0) cout << a[i] << " "; } else { if(a[i-1] > 0 || a[i+1] > 0) cout << a[i] << " "; } } if(a[n] > 0 && a[n-1] < 0 || a[n] < 0 && a[n-1] > 0) cout << a[n] << " "; return 0; }


  • -2
    quynhmainehihi  đã bình luận lúc 7, Tháng 11, 2024, 13:25

    moi nguoi cuu e voi e k biet code


    • -2
      anhthu  đã bình luận lúc 7, Tháng 11, 2024, 13:49

      ke em


      • -3
        quynhmainehihi  đã bình luận lúc 7, Tháng 11, 2024, 13:49

        dung de t phot m


  • -3
    dangkhoa2836  đã bình luận lúc 19, Tháng 7, 2024, 17:36

    xin góp vui một cách bài này:33

    include <stdio.h>

    define ll long long

    int main(){
        int n; scanf ("%d", &n);
        ll a[n];
        for (int i = 0; i < n; i++) scanf ("%lld", &a[i]);
        for (int i  =0; i < n; i++){
            if (((i > 0) & ((a[i] >> 63) ^ (a[i - 1] >> 63))) | ((i < n - 1) & ((a[i] >> 63) ^ (a[i + 1] >> 63)))) 
                printf ("%lld ", a[i]);
        }
    
    }