K
Khách

Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.

uses crt;

var a:array[1..100]of integer;

n,i,s,max,k:integer;

begin

clrscr;

write('Nhap n='); readln(n);

for i:=1 to n do 

begin

write('A[',i,']='); readln(a[i]);

end;

max:=0;

for i:=1 to n do 

  for j:=1 to n do 

if i<=j then 

begin

s:=0;

for k:=i to j do 

  s:=s+a[k];

if max<s then max:=s;

end;

writeln(max);

readln;

end.

26 tháng 7 2023

#include <iostream>

#include <map>

using namespace std;

int main() {

       int n;

       cin >> n;

       map<int, int> count;

       for (int i = 0; i < n; i++) {

              int x;

              cin >> x;

              count[x]++;

       }

       int ans = 0;

       for (auto p : count) {

              int x = p.second;

              ans += (x * (x - 1)) / 2;

       }

       cout << ans;

       return 0;

}

26 tháng 7 2023

dùng mảng đc ko b?

 

BÀI 2. ĐỘ CAO CỦA DÃY SỐ DOCAO13.PASTa gọi độ cao của một số nguyên dương K là tổng giá trị các chữ số của K.Ví dụ: số 25362 có độ cao là 18. Cho dãy số nguyên dương A gồm N phần tử a 1 ,a 2 , ..., a N .(1 ≤ N ≤ 1000, 1 ≤ i ≤ N, 0 &lt; a i ≤ 2147483647)Yêu cầu: Hãy tính độ cao của các phần tử trong dãy số A.Dữ liệu vào: Ghi trong file văn bản DOCAO13.INP có cấu trúc như sau:- Dòng 1: Ghi số nguyên dương N, là số...
Đọc tiếp

BÀI 2. ĐỘ CAO CỦA DÃY SỐ DOCAO13.PAS
Ta gọi độ cao của một số nguyên dương K là tổng giá trị các chữ số của K.
Ví dụ: số 25362 có độ cao là 18. Cho dãy số nguyên dương A gồm N phần tử a 1 ,
a 2 , ..., a N .(1 ≤ N ≤ 1000, 1 ≤ i ≤ N, 0 &lt; a i ≤ 2147483647)
Yêu cầu: Hãy tính độ cao của các phần tử trong dãy số A.
Dữ liệu vào: Ghi trong file văn bản DOCAO13.INP có cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương N, là số lượng phần tử của dãy số.
- Dòng 2: Ghi N số nguyên dương, số thứ i là giá trị của phần tử a i trong dãy số,
các số được ghi cách nhau ít nhất một dấu cách.
Dữ liệu ra: Ghi ra file văn bản DOCAO13.OUT theo cấu trúc như sau:
- Dòng 1: Ghi N số nguyên dương t 1 , t 2 , ..., t N, t i là độ cao của số của a i . Các số
được ghi cách nhau một dấu cách.
Ví dụ:

DOCAO13.INP DOCAO13.OUT
5 13 5 5 10 9

1

const fi='docao13.inp';

fo='docao13.out';

var f1,f2:text;

a:array[1..100]of integer;

i,n:integer;

//chuongtrinhcon

function kq(x:integer):integer;

var t,k:integer;

begin

t:=0;

while (x>0) do

begin

k:=x mod 10;

t:=t+k;

x:=x div 10;

end;

kq:=t;

end;

//chuongtrinhchinh

begin

assign(f1,fi); reset(f1);

assign(f2,fo); rewrite(f2);

readln(f1,n);

for i:=1 to n do 

read(f1,a[i]);

for i:=1 to n do

write(f2,kq(a[i]):4);

close(f1);

close(f2);

end.

SWAP XBạn được cho hai dãy số nguyên dương aa và bb gồm nn phần tử mỗi mảng. Bạn được phép thực hiện thao tác này nhiều lần:Chọn 1 số nguyên ii bất kỳ (1≤i≤n) và tráo đổi 2 phần tử a[i] và b[i].Yêu cầu: Tìm giá trị nhỏ nhất có thể của max(a1,a2,...,an)⋅max(b1,b2,...,bn)sau khi bạn thực hiện thao tác trên 1 hoặc nhiều lần.Dữ liệu:Dòng đầu ghi t thể hiện số testcase, t≤100.t block tiếp theo, mỗi block có...
Đọc tiếp

SWAP X
Bạn được cho hai dãy số nguyên dương aa và bb gồm nn phần tử mỗi mảng. Bạn được phép thực hiện thao tác này nhiều lần:

Chọn 1 số nguyên ii bất kỳ (1≤i≤n) và tráo đổi 2 phần tử a[i] và b[i].

Yêu cầu: Tìm giá trị nhỏ nhất có thể của max(a1,a2,...,an)⋅max(b1,b2,...,bn)sau khi bạn thực hiện thao tác trên 1 hoặc nhiều lần.

Dữ liệu:

Dòng đầu ghi t thể hiện số testcase, t≤100.

t block tiếp theo, mỗi block có dạng:

Dòng đầu ghi số nguyên dương n (n≤104).

Dòng thứ hai ghi nn số nguyên dương a1,a2,...,an (ai≤106)

Dòng thứ ba ghi nn số nguyên dương b1,b2,...,bn(bi≤106).

Kết quả:
Ứng với mỗi testcase, in ra kết quả cần tìm.
input
3
6
1 2 6 5 1 2
3 4 3 2 2 5
3
3 3 3
3 3 3
2
1 2
2 1
output
18
9
2

1
13 tháng 2 2022

Ý tưởng: Tìm số lớn nhất trong hai dãy đã cho. Không mất tính tổng quát, giả sử số lớn nhất của 2 dãy nằm trong dãy a, ta xét các số trong dãy b, tại vị trí i:  nếu a[i] < b[i] thì hoán vị a[i] và b[i]. Sau đó tìm số lớn nhất trong dãy b rồi nhân với số lớn nhất của hai dãy sẽ ra được kết quả. 

#include <iostream>

using namespace std;

#define maxN 105

 

int main() {

int a[maxN], b[maxN];

int t;

cin >> t;

while (t--)

{

int n;

cin >> n;

int maxA = 0, maxB = 0;

for (int i = 0; i < n; i++)

{

cin >> a[i]; maxA = max(a[i], maxA);

}

for (int i = 0; i < n; i++)

{

cin >> b[i]; maxB = max(b[i], maxB);

}

if (maxA < maxB) 

swap(a, b);

int maxV = max(maxA, maxB);

for (int i = 0; i < n; i++)

if (b[i] > a[i]) 

swap(b[i], a[i]);

maxB = 0;

for (int i = 0; i < n; i++)

maxB = max(b[i], maxB);

cout << maxB * maxV << endl;

}

return 0;

}

23 tháng 8 2023

Để chứng minh tính đúng đắn của thuật toán sắp xếp chèn với các lệnh thay đổi trên, ta cần chứng minh hai điều kiện sau đây:

Điều kiện ban đầu (trước khi bắt đầu vòng lặp): Sau khi thực hiện lệnh j = 1, giá trị của j đang là 1, và dãy con A[0] chỉ gồm một phần tử là A[0] (vì j-1 là 0). Do đó, dãy con này đã được sắp xếp đúng.

Điều kiện duy trì (trong quá trình vòng lặp): Trong mỗi vòng lặp của while, nếu A[j] < A[j-1], ta hoán đổi giá trị của A[j] và A[j-1] bằng lệnh Đổi chỗ A[j] và A[j-1]. Sau đó, ta giảm giá trị của j đi 1 đơn vị bằng lệnh j = j - 1. Lúc này, giá trị của A[j] là giá trị của A[j-1] trước khi hoán đổi, và giá trị của A[j-1] là giá trị của A[j] trước khi hoán đổi. Điều này đồng nghĩa với việc dãy con A[0], A[1], ..., A[j-1] đã được sắp xếp đúng sau mỗi vòng lặp.

Vậy nên, dãy con A[0], A[1], ..., A[j-1] luôn được sắp xếp đúng sau mỗi vòng lặp của while, và dãy con này sẽ không bị thay đổi giá trị trong quá trình hoán đổi. Do đó, tính đúng đắn của thuật toán sắp xếp chèn vẫn được duy trì sau khi thay toàn bộ phần chèn A[i] vào vị trí đúng của dãy con A[0], A[1], ..., A[i-1] bằng các lệnh trên.

15 tháng 4 2021

tự làm đi dễ mà:)))))

 

Dễ thì bạn làm đi

27 tháng 3 2022

Lưu ý :Dùng C++