[Kiểu dữ liệu-if else]. Bài 15. Mua nước

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

28tech muốn nấu một món súp. Để làm điều đó, anh ta cần mua chính xác n lít nước. Chỉ có hai loại chai nước trong cửa hàng gần đó - chai 1 lít và chai 2 lít. Có vô số chai của hai loại này trong cửa hàng. Chai loại thứ nhất có gía a burles và chai loại thứ hai có giá tương ứng b burles. 28tech muốn chi càng ít tiền càng tốt. Nhiệm vụ của bạn là tìm ra số tiền tối thiểu (bằng burles) 28tech cần mua chính xác n lít nước ở cửa hàng gần đó nếu chai loại thứ nhất có giá a burles và chai loại thứ hai có giá b burles.

Gợi ý : Bạn phải xét xem chai nào rẻ hơn, rẻ hơn ở đây không phải là chai nào ít tiền hơn, không ai so sánh giá của chai 2 lit vs chai 1 lit để kết luận rẻ. Bạn cần tính giá tiền 1 lit nước để xem chai nào rẻ hơn, neus chai 1 lit rẻ hơn thì mua hoàn toàn bằng chai 1 lit. Ngược lại nếu chai 2 lit rẻ hơn thì chú ý trường hợp n chẵn và n lẻ, khi n lẻ bạn bắt buộc phải mua thêm 1 chai 1 lit.


Đầu vào

3 số n,a,b


Giới hạn

1<=n<=10^12; 1<=a,b<=1000


Đầu ra

Số tiền ít nhất để mua được n lit nước. Chú ý bạn phải mua chính xác n lít nước, không mua thiếu cũng không mua thừa.


Ví dụ :

Input 01
10 1 3
Output 01
10
Input 02
11 3 5
Output 02
28

[Mảng 1 Chiều Cơ Bản]. Bài 45. Dãy con nguyên tố

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho mảng A[] gồm N phần tử, bạn hãy đếm số lượng dãy con liên tiếp của A[] có tổng các phần tử là số nguyên tố. 2 dãy con [l, r][l1, r1] được coi là khác nhau nếu l != l1 hoặc r != r1.


Đầu vào

Dòng 1 là N : số phần tử trong mảng

Dòng 2 là N phần tử cách nhau 1 khoảng trắng


Giới hạn

1<=N<=1000

0<=A[i]<=1000


Đầu ra

In ra số lượng dãy con thỏa mãn


Ví dụ :

Input 01
5
9 2 3 5 4
Output 01
7
Giải thích :

Các dãy con thỏa mãn : {2}, {3}, {5}, {2, 3}, {9, 2}, {9, 2, 3, 5, 4}, {9, 2, 3, 5}


[Mảng 1 Chiều Cơ Bản]. Bài 46. Cặp số chia hết cho 28

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

28Tech là người rất thích số 28, anh ta cho bạn mảng A[] gồm N phần tử, bạn hãy đếm xem trong mảng có bao nhiêu cặp số A[i], A[j] với i khác j mà khi cộng với nhau sẽ tạo thành 1 số chia hết cho 28.


Đầu vào

Dòng 1 là N : số phần tử trong mảng

Dòng 2 là N phần tử cách nhau 1 khoảng trắng


Giới hạn

1<=N<=10^6

0<=A[i]<=10^9


Đầu ra

In ra số cặp thỏa mãn


Ví dụ :

Input 01
5
1 14 14 27 27
Output 01
3

[Set & Map]. Bài 27. Gửi Bitcoin

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Bitcoin là đồng tiền mã hóa lớn nhất từng tồn tại, trong mạng lưới của bitcoin bạn có thể gửi đồng tiền bitcoin của mình tới người khác thông qua địa chỉ ví của họ. Địa chỉ ví là một chuỗi ký tự tương tự như email hay số tài khoản ngân hàng của bạn. Khi biết địa chỉ của một người bạn có thể gửi bitcoin cho họ mà không ai có thể ngăn cản được. Bây giờ bạn được cung cấp thông tin về địa chỉ ví bitcoin và tên người sở hữu nó, sau đó là các giao dịch gửi tiền bitcoin giữa các địa chỉ này. Tuy nhiên việc in ra địa chỉ ví này gửi bitcoin cho địa chỉ ví khác quá khó truy vết nên bạn cần hiển thị tên người gửi thay vì hiển thị địa chỉ.

Ví dụ : địa chỉ ví của Satoshi Nakamoto1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa còn địa chỉ ví của 28Tech3E97AjYaCq9QYnfFMtBCYiCEsN956Rvpj2 thì khi giao dịch từ địa chỉ 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa gửi 3 bitcoin đến địa chỉ 3E97AjYaCq9QYnfFMtBCYiCEsN956Rvpj2 bạn cần hiển thị thành Satoshi Nakamoto send 3 bitcoin to 28Tech

Lưu ý rằng 1 người có thể sử hữu nhiều địa chỉ ví bitcoin khác nhau.


Đầu vào

Dòng đầu tiên là số N : số lượng địa chỉ ví bitcoin và người sở hữu của chúng

2N dòng tiếp theo mô tả người sở hữu và địa chỉ bitcoin tương ứng, dòng 1 là tên người sở hữu, dòng 2 là địa chỉ ví bitcoin

Dòng tiếp theo là T : Số giao dịch được gửi qua lại trên mạng lưới bitcoin có dạng [X] [Y] [Amount] trong đó X là địa chỉ ví người gửi, Y là địa chỉ ví người nhận, Amount là số nguyên tương ứng với lượng bitcoin được gửi.


Giới hạn

1<=N<=1000

1<=T<=1000


Đầu ra

Đối với mỗi giao dịch [X] [Y] [Amount] bạn cần hiển thị thành X send Amount bitcoin to Y . Trong trường hợp X, Y là các địa chỉ ví không thể xác định được người sở hữu thì bạn thay bằng Unknown wallet


Ví dụ :

Input 01
9
Satoshi Nakamoto
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
28tech
3E97AjYaCq9QYnfFMtBCYiCEsN956Rvpj2
Tesla
01CPaziTqeEixPoSFtJxu74uDGbpEAotZom
Vitalik Buterin
34HpHYiyQwg69gFmCq2BGHjF1DZnZnBeBP
Elon Musk
3G98jSULfhrES1J9HKfZdDjXx1sTNvHkhN
Jack Dorsey
15cHRgVrGKz7qp2JL2N5mkB2MCFGLcnHxv
US government
19D5J8c59P2bAkWKvxSYw8scD3KUNWoZ1C
28tech
3A9qNS69dngSU2ak8BwZKEExeVnL2RqpYJ
28tech
1Cr7EjvS8C7gfarREHCvFhd9gT3r46pfLb
6
18qNs1yBGGKR8RyErnEF5kegbNUgPfixhS 34HpHYiyQwg69gFmCq2BGHjF1DZnZnBeBP 723
3A9qNS69dngSU2ak8BwZKEExeVnL2RqpYJ 12HnxiXEeKUVjQRbMVTytsGWnzHd5LdGCt 454
3G98jSULfhrES1J9HKfZdDjXx1sTNvHkhN 3E97AjYaCq9QYnfFMtBCYiCEsN956Rvpj2 380
3A9qNS69dngSU2ak8BwZKEExeVnL2RqpYJ 1Cr7EjvS8C7gfarREHCvFhd9gT3r46pfLb 550
1BAFWQhH9pNkz3mZDQ1tWrtKkSHVCkc3fV 12HnxiXEeKUVjQRbMVTytsGWnzHd5LdGCt 855
1Ki3WTEEqTLPNsN5cGTsMkL2sJ4m5mdCXT 15cHRgVrGKz7qp2JL2N5mkB2MCFGLcnHxv 916
Output 01
Unknown wallet send 723 bitcoin to Vitalik Buterin
28tech send 454 bitcoin to Unknown wallet
Elon Musk send 380 bitcoin to 28tech
28tech send 550 bitcoin to 28tech
Unknown wallet send 855 bitcoin to Unknown wallet
Unknown wallet send 916 bitcoin to Jack Dorsey

[Set & Map]. Bài 19. Thi đấu

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho thông tin các trận đấu của giải bóng đá Sunday League, nhiệm vụ của bạn là đối với mỗi đội bóng hãy liệt kê các đối thủ đã từng chạm trán.

Danh sách các đội bóng được liệt kê theo thứ tự từ điển tăng dần và danh sách đối thủ của từng đội bóng cũng được liệt kê tăng dần theo thứ tự từ điển.

Gợi ý : Dùng map<string, vector<string>> mp; mỗi đội bóng sẽ dùng 1 vector để lưu lại danh sách các đối thủ trong các trận bóng, sort danh sách đội bóng trước khi in ra kết quả.


Đầu vào
  • Dòng 1 là N : số trận bóng diễn ra

  • N dòng tiếp theo mỗi dòng gồm thông tin của 1 trận đấu theo cú pháp X - Y, trong đó đội X thi đấu với đội Y


Giới hạn
  • 1<=N<=1000

Đầu ra
  • In ra kết quả của bài toán theo mẫu

Ví dụ :

Input 01
15
Lyon - Manchester City
Lyon - Chelsea
Arsenal - Liverpool
AC Milan - Barcelona
Real Madrid - Chelsea
Real Madrid - Manchester City
Lyon - Liverpool
Liverpool - Manchester United
Barcelona - HAGL
Liverpool - Lyon
AC Milan - Lyon
AC Milan - Chelsea
Fullham - Barcelona
Fullham - Real Madrid
28Tech FC - Lyon
Output 01
28Tech FC : Lyon
AC Milan : Barcelona, Chelsea, Lyon
Arsenal : Liverpool
Barcelona : AC Milan, Fullham, HAGL
Chelsea : AC Milan, Lyon, Real Madrid
Fullham : Barcelona, Real Madrid
HAGL : Barcelona
Liverpool : Arsenal, Lyon, Lyon, Manchester United
Lyon : 28Tech FC, AC Milan, Chelsea, Liverpool, Liverpool, Manchester City
Manchester City : Lyon, Real Madrid
Manchester United : Liverpool
Real Madrid : Chelsea, Fullham, Manchester City