当前位置: 首页 > news >正文

试题:出行计划

试题描述:

(题目源于第25次CCF计算机软件能力认证)

最近西西艾弗岛上出入各个场所都要持有一定时限内的核酸检测阴性证明。

具体来时,如果在 t时刻做了核酸检测,则经过一段时间后可以得到核酸检测阴性证明。

这里我们假定等待核酸检测结果需要 k个单位时间,即在 t+k时刻可以获得结果。

如果一个场所要求持 24个单位时间内核酸检测结果入内,那么凭上述的核酸检测结果,可以在第 t+k 时刻到第 t+k+23时刻进入该场所。

小 C按时间顺序列出接下来的 n 项出行计划,其中第 i 项(1≤i≤n)可以概括为:ti 时刻进入某场所,该场所需持有 ci 个单位时间内的核酸检测结果入内,其中 0<ci≤2×10的五次方。

为了合理安排核酸检测时间,试根据小 C的出行计划,回答如下查询:

  • 如果在 q时刻做了核酸检测,有多少项出行计划的核酸检测要求可以得到满足?

这样的查询共有 m个,分别为 q1,q2,⋯,qm;查询之间互不影响。

输入格式

输入的第一行包含空格分隔的三个正整数 n、m 和 k,分别表示出行计划数目、查询个数以及等待核酸检测结果所需时间。

接下来输入 n行,其中每行包含用空格分隔的两个正整数 ti、ci,表示一项出行计划;出行计划按时间顺序给出,满足 0<t1≤t2≤⋯≤tn≤2×10的五次方。

最后输入 m行,每行仅包含一个正整数 qi,表示一个查询。m 个查询亦按照时间顺序给出,满足 0<q1<q2<⋯<qm≤2×10的五次方。

输出格式

输出共 m行,每行一个整数,表示对应查询的答案。

数据范围

40%

的测试数据满足 0<n,k≤1000、m=1;
70% 的测试数据满足 0<n,m,k≤1000;
全部的测试数据满足 0<n,m,k≤105。

输入样例:

6 2 10
5 24
10 24
11 24
34 24
35 24
35 48
1
2

输出样例:

3
3

样例解释

时刻 1做检测,可以满足第三、四、六项出行计划;

时刻 2做检测,可以满足第四、五、六项出行计划。 

解题代码 :

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int a[N];
int main(){
    int n,m,k;
    cin>>n>>m>>k;
    while(n--){
        int t,c;
        cin>>t>>c;
        int l=t-k-c+1;int r=t-k;
        if(l<1) l=1;
        if(r>0) a[l]++,a[r+1]--;
    }
     for (int i = 1; i < N; i ++ ) a[i]+=a[i-1];
     while(m--){
         int q;cin>>q;
         cout<<a[q]<<endl;
     }
    return 0;
}

相关文章:

  • 家居网站建设的背景及意义/seo性能优化
  • 集运网站建设/联盟营销平台
  • 慈溪网站建设报价/今日头条搜索优化
  • 网站开发大概多少钱/yandere搜索引擎入口
  • 个人网站源代码html/友情链接属于免费推广吗
  • 怎样做网站教程/免费代码网站
  • 利用QT 的 Graphics View 系统实现一个 简易的 Graph Editor
  • C语言基于FOC控制算法和STM32主控芯片的双路直流无刷电机控制器源码
  • Unity学习笔记--File.ReadAllLines和File.ReadAllText的使用以及注意事项(一定要看到最后!!!)
  • 刷题记录:牛客NC16416逛公园
  • 【算法数据结构初阶篇】:链表问题
  • Task12 数据缘何而来数据格式
  • JVM-三色标记
  • javascript画全年日历
  • APP攻防——微信小程序解包反编译数据抓包APK资源提取
  • 分享88个C源码,总有一款适合您
  • SpringBoot 注册自己的Servlet(三种方式)
  • 华为MPLS跨域C2方案实验配置