Trang chủ Tin Học Lớp 7 Địa điểm du lịch Dailai nổi tiếng với con đường Tùng-Trúc. Đó là một con đường dài và thẳng, dọc...
Câu hỏi :

Địa điểm du lịch Dailai nổi tiếng với con đường Tùng-Trúc. Đó là một con đường dài và thẳng, dọc bên đường người ta trồng rất nhiều cây tùng và cây trúc. Với mục đích tạo điểm nhấn cho con đường, Ban quản lý khu du lịch muốn chọn một đoạn đường mà dọc theo nó có ít nhất cây tùng và có ít nhất cây trúc để trang trí. Sau khi khảo sát, Ban quản lý ghi nhận được vị trí của từng cây tùng và cây trúc. Trên con đường có tất cả cây, không có hai cây nào ở cùng một vị trí. Cây thứ ở vị trí có khoảng cách đến vị trí bắt đầu của con đường là ( ). Với kinh phí có hạn, Ban quản lý muốn chọn một đoạn đường thỏa mãn điều kiện đã nêu với độ dài là ngắn nhất. Cho , và vị trí của cây. Hãy tìm đoạn đường có độ dài ngắn nhất mà dọc theo đoạn đường đó có ít nhất cây tùng và cây trúc. Input Dòng đầu chứa 3 số nguyên dương , , ( ) Dòng thứ trong dòng tiếp theo mỗi dòng chứa hai số nguyên dương ( ) trong đó là khoảng cách của cây tính từ vị trí bắt đầu của con đường, nếu cây thứ là cây tùng, nếu là cây trúc. Các số trên cùng một dòng được ghi cách nhau ít nhất một dấu cách. Output Ghi ra một số nguyên là độ dài đoạn đường ngắn nhất tìm được, quy ước ghi số nếu không tồn tại đoạn đường nào thỏa mãn điều kiện đặt ra. Giới hạn 30% số test có . 30% số test khác có . 40% số test còn lại có . Sample Input Copy 7 2 2 20 2 30 1 25 1 35 1 60 2 65 2 10 1 Sample Output 35 làm tring c++,chỉ dùng 1 thư viện #include <bits/stdc++.h>

Lời giải 1 :

#include<bits/stdc++.h>
using namespace std;
ifstream fi("MINROAD.inp");
ofstream fo("MINROAD.out");
long long t1[1000001],t2[1000001],n,x,y,i,dau,res=1e18;
pair<long long,long long> a[1000001];
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);cout.tie(nullptr);
    cin>>n>>x>>y;
    for(i=1;i<=n;i++) cin>>a[i].first>>a[i].second;
    sort(a+1,a+n+1);
    t1[0]=0;
    t2[0]=0;
    for(i=1;i<=n;i++)
    {
        if (a[i].second==1){
            t1[i]=t1[i-1]+1;
            t2[i]=t2[i-1];
        }
        else {
            t1[i]=t1[i-1];
            t2[i]=t2[i-1]+1;
        }
    }
    dau=1;
    //for(i=1;i<=n;i++) cout<<t1[i]<<' '<<t2[i]<<endl;
    for(i=1;i<=n;i++)
    {
        //cout<<t1[i]-t1[dau-1]<<' '<<t2[i]-t2[dau-1]<<endl;
        while(t1[i]-t1[dau-1]>=x&&t2[i]-t2[dau-1]>=y)
        {
            res=min(res,a[i].first-a[dau].first);
            dau++;
        }
    }
    if (res!=1e18)
    cout<<res;
    else cout<<-1;
}

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 7

Lớp 7 - Năm thứ hai ở cấp trung học cơ sở, một chuỗi quay mới lại đến và chúng ta vẫn bước tiếp trên con đường học sinh. Học tập vẫn là nhiệm vụ chính, hãy luôn kiên trì và không ngừng cố gắng!

Nguồn :

sưu tập

Copyright © 2024 Giai BT SGK