Trang chủ Tin Học Lớp 9 Đá đỏ Quỳ Châu Tại một huyện miền núi của tỉnh Nghệ An vào thời điểm năm 1990. Có một...
Câu hỏi :

Đá đỏ Quỳ Châu Tại một huyện miền núi của tỉnh Nghệ An vào thời điểm năm 1990. Có một mỏ đá đỏ rất là nổi tiếng, mỗi viên đá đỏ đẹp thì có giá trị rất lớn. Theo lời kể thì tại thời điểm đó, nếu ta đi theo một đường thẳng thì cứ 1 mét sẽ có một viên đá đỏ, và mỗi viên đá đỏsẽ có giá trị khác nhau. Ta sẽ có một bài toán như sau. Cho n viên đá mỗi viên cách nhau một mét, và cho một số k, nhiệm vụ của em là tìm xem có thể tìm được số viên đá liên tiếp nhau mà giá trị của các viên đá là lớn hơn hoặc bằng k mà số viên đá liên tiếp nhau là ít nhất có thể. Nếu không tìm được thì in ra -1. Dữ liệu vào: - Dòng đầu tiên ghi 2 số nguyên n (1 n 106) và k (1 k 109) - Dòng thứ hai bao gồm n số là giá trị của mỗi viên đá đỏ (1 ai 109) Kết quả: - Một dòng ghi ra một số nguyên là số lượng viên đá liên tiếp nhau ít nhất mà tổng giá trị của nó lớn hơn hoặc bằng k Ví dụ: DADO.INP DADO.OUT Giải thích 10 20 5 1 2 3 5 6 8 9 10 11 2 - Có 2 viên đá liên tiếp nhau có giá trị lần lượt là 10 và 11 lớn hơn 20 5 30 2 5 6 2 3 -1 - Tổng tất cả giá trị các viên đá nhỏ hơn k Sử dụng ngôn ngữ C++

Lời giải 1 :

#include <iostream>

#include <vector>

using namespace std; int findMinStones(int n, int k, vector<int>& stones) {

int left = 0; int right = 0;

int sum = stones[0];

int minStones = n + 1;

while (right < n) {

if (sum >= k) {

minStones = min(minStones, right - left + 1);

sum -= stones[left];

left++;

} else { right++; if (right < n) { sum += stones[right]; } } } if (minStones == n + 1) { return -1; } else { return minStones; } } int main() { int n, k; cin >> n >> k; vector<int> stones(n); for (int i = 0; i < n; i++) { cin >> stones[i]; } int minStones = findMinStones(n, k, stones); cout << minStones << endl; return 0; }

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 9

Lớp 9 - Là năm cuối ở cấp trung học cơ sở, chúng ta sắp phải bước vào một kỳ thi căng thẳng và sắp chia tay bạn bè, thầy cô. Áp lực từ kỳ vọng của phụ huynh và tương lai lên cấp 3 thật là lớn, nhưng hãy tin vào bản thân và giữ vững sự tự tin!

Nguồn :

sưu tập

Copyright © 2024 Giai BT SGK