Findmax1: thực hiện nhiều truy vấn gán hoặc trả về số có giá trị lớn nhất trong đoạn từ l đến r

Cho một dãy a gồm N số nguyên, được đánh số từ 1 đến N, số thứ i có giá trị là ai ban đầu tất cả các số đều có giá trị bằng 0. Ta có Q thao tác. Có hai loại thao tác

  • Loại 1: Gồm hai số i, v: gán ai=v
  • Loại 2: Gồm hai số l, r: trả về số có giá trị lớn nhất trong đoạn từ l đến r.

Dữ liệu vào:

  • Dòng đầu tiền gồm 2 hai số nguyên dương NN, QQ (N,Q≤2000N,Q≤2000)
  • Dòng thứ hai gồm N số, là giá trị ban đầu của dãy a
  • Q dòng tiếp theo mỗi dòng là gồm 3 số, số đầu tiên là t (1≤t≤2), là loại thao tác của thao tác hiện tại. Nếu t=1, hai số tiếp theo sẽ là i và v (1≤i≤N, 1≤v≤10^9). Nếu t=2, hai số tiếp theo sẽ là l và r (1 ≤ l ≤ r ≤ n).

Dữ liệu ra:

  • Dòng nhiều dòng là đáp án cho các thao tác loại 2, mỗi số in trên một dòng.

Ví dụ:

Input:

5 6
1 2 3 4 5
2 1 5
1 1 6
2 1 5
2 2 4
1 2 5
2 2 4

Output:

5
6
4
5

Code của e

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll a[2000],q,n,t,i,v,l,r,maxx;
int main()
{
    int t,a1,b1;
    cin>>n>>q;
    for (i=1;i<=n;i++) cin>>a[i];
    int k=0;
    while (q--)
    {
//        k++;
        cin>>t>>a1>>b1;
    if (t==1)
    {
        a[a1]=b1;
    }
    if (t==2)
    {
        maxx=a[a1];
        for (int j=2;j<=b1;j++)  if (maxx<a[j]) maxx=a[j];
        cout<<maxx;
    }
}
     
     return 0;
    }

Nhưng code này chỉ đưa ra kết quả ngay dưới các dòng của input
Như thế này:

5 6

1 2 3 4 5

2 1 5
5
1 1 6

2 1 5
6
2 2 4
4
1 2 5

2 2 4

Cho em các để các số đó xuất hiện riêng như trên đề ko ạ?
Em cảm ơn!

1 Like

cho kết quả vào 1 mảng chứa rồi in ra sau thôi :v
mà bạn copy đề làm sao mà lâu lâu lại bị lặp kí tự thế, nhất là chỗ mấy cái biến?

4 Likes

Dùng \n hoặc endl thôi.

cout << "Foo bar" << endl;

Ngoài ra, code của bạn nhìn chẳng clean tí nào, thụt lề còn sai và đặc biệt là về cách đặt tên biến. Đặt tên không ràng gì hết, khi cần tìm xem cái biến mình dùng là cái nào rất dễ bị loạn, đặc biệt là với những đoạn code dài và phức tạp, cần tạo ra một mớ biến.

3 Likes

Thực ra cin/cout của mấy trang chấm được điều hướng hết chứ không ra terminal đâu :smiley: cứ làm thôi.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?