Những câu hỏi liên quan
89654DAUUBUOIIIII956
Xem chi tiết
Phía sau một cô gái
26 tháng 7 2023 lúc 19:45

#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;

}

Bình luận (1)
Thu Hiền
Xem chi tiết
Cao Phạm Hà Anh
Xem chi tiết
Nguyễn Lê Phước Thịnh
18 tháng 8 2023 lúc 12:12

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.

Bình luận (0)
Xem chi tiết
Nguyễn Thị Thùy Trang
13 tháng 2 2022 lúc 21:37

Ý 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;

}

Bình luận (0)
Lala
Xem chi tiết
Minh Lệ
Xem chi tiết
Thanh An
23 tháng 8 2023 lúc 9:40

Để 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.

Bình luận (0)
Givemesome Flan
Xem chi tiết
Duy Đức Anh Nguyễn
Xem chi tiết
Đinh Duy Linh Bùi
15 tháng 4 2021 lúc 14:44

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

 

Bình luận (4)
Nông Quang Minh
6 tháng 7 2021 lúc 10:40

dễ thì bạn làm đi mà bạn đấy k làm được bạn ấy mới hỏi mà bạn lại bảo tự làm là sao

Bình luận (0)
Hello1234
Xem chi tiết
Hello1234
27 tháng 3 2022 lúc 14:05

Lưu ý :Dùng C++

Bình luận (0)