Vị trí số âm

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C#, C++, Clang, Clang++, Cobol, D, Groovy, Haskell, Java, JS, Kotlin, Lua, Node JS, ObjectiveC, OCaml, Output, PHP, Prolog, Pypy, Pypy 3, Ruby, Rust, Scala, Scratch, Swift
Điểm: 100 (p) Thời gian: 10.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Nhập vào một dãy \(N\) số nguyên \(A_1,A_2,...,A_N\) (\(N \leq 10000, |A_i| \leq 10^9\)).

Hãy in ra màn hình chỉ số phần tử âm đầu tiên và cuối cùng.

Input

  • Dòng đầu tiên chứa số \(N\),
  • Dòng thứ 2 chứa \(N\) số nguyên \(A_1,A_2,...,A_N\).

Output

  • In ra chỉ số phần tử âm đầu tiên và cuối cùng, nếu ko có phần tử âm nào thì in ra 2 số \(-1\ -1\),

Example

Test 1

Input
7
7 -6 -4 19 -22 51 -82
Output
2 7

Bình luận

  • masara815 8:31 p.m. 15 Tháng 2, 2025
    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
    
        int n;
        vector<int> vector(n); 
        for (int i = 0; i < n; i++) {
            cin >> vector[i];
        }
    
        // Khai báo minIndex và maxIndex để lưu vị trí đầu tiên và cuối cùng của phần tử âm
        int minIndex = -2, maxIndex = -2;  // Khởi tạo giá trị ban đầu là -2 (một giá trị không hợp lệ)
    
        // Duyệt qua tất cả các phần tử của vector
        for (int i = 0; i < n; i++) {
            // Nếu phần tử tại vị trí i là số âm
            if (vector[i] < 0) {
                // Nếu chưa có phần tử âm nào được tìm thấy (minIndex == -2)
                if (minIndex == -2) {
                    minIndex = i;  // Cập nhật minIndex là vị trí của phần tử âm đầu tiên
                    maxIndex = i;  // Cập nhật maxIndex là vị trí của phần tử âm đầu tiên
                }
                else {
                    maxIndex = i;  // Cập nhật maxIndex là vị trí của phần tử âm gần nhất
                }
            }
        }
    
        // +1 vì yêu cầu đề bài sử dụng chỉ số mảng bắt đầu từ 1
        cout << minIndex + 1 << " ";  // In ra vị trí đầu tiên của phần tử âm (được cộng 1 để theo yêu cầu)
        cout << maxIndex + 1;  // In ra vị trí cuối cùng của phần tử âm (được cộng 1 để theo yêu cầu)
    }
    
    • Vodangngoclam 9:48 p.m. 9 Tháng 5, 2024

      code cho ai cần:

      #include <bits/stdc++.h>
      #define ll long long 
      const int N=1e7+2;
      using namespace std;
      ll n,a[N],dau,cuoi,d;
      int main()
      {
          ios_base::sync_with_stdio(0);
          cin.tie(NULL);
      //    freopen(".inp","r",stdin);
      //    freopen(".out","w",stdout);
          cin >> n;
          for(ll i=1;i<=n;i++)
          {
              cin >> a[i];
              if(a[i]<0)d++;
          }
          if(d>0)
          {
              for(ll i=1;i<=n;i++)
              {
                  if(a[i]<0){cout << i << " ";break;}
              }
              for(ll i=n;i>=1;i--)
              {
                  if(a[i]<0){cout << i << " ";break;}
              }
          }else cout << -1 << " " << -1;
          return 0;
      }
      

      • xthabao1 11:12 p.m. 6 Tháng 8, 2023

        cho c++17(64) pls

        • phongdt 10:21 a.m. 4 Tháng 9, 2022 đã chỉnh sửa

          hơi khó à nha :)))