Letters
发布日期:2021-05-10 08:47:37 浏览次数:24 分类:精选文章

本文共 923 字,大约阅读时间需要 3 分钟。

这里写图片描述

这里写图片描述
这里写图片描述

#include
long long a[200000], b[200000], sum1, sum2, n, m, j;int main(void){ while(~scanf("%lld %lld", &n, &m)){ for(long long i = 0; i < n; i++){ //输入宿舍数量 scanf("%lld", &a[i]); } for(long long i = 0; i < m; i++){ scanf("%lld", &b[i]); //输入宿舍的房间数 } sum1 = 0; //代表现在所搜索宿舍之前有多少房间 sum2 = 0; //代表加上现在所搜索宿舍与之前一共有多少房间 j = 0; //代表现在所搜索的房间顺序 for(long long i = 0; i < n; i++){ sum2 += a[i]; while(j < m){ if(b[j] > sum1 && b[j] <= sum2){ printf("%lld %lld\n", i+1, b[j] - sum1); //判定现在所搜索房间是否在sum1与sum2的区间内,若在,则判定下一个房间 j++; } else{ //若不在,则跳出循环,搜索下一个宿舍 break; } } sum1 += a[i]; } } return 0;}

题意

有n个宿舍,每个宿舍有m个房间,邮递员给房间送信,送信的房间号是按照总房间数来算的,你需要输出这是第几个宿舍的第几个房间。
思路
见注释

上一篇:Pandas 基础 (5) —— 处理缺失数据及层次化索引
下一篇:File Name

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月27日 08时02分48秒