NC223422. 卷王之王
描述
牛卷风是养蛊大学著名的小镇做题家,每天早上6点半起床,凌晨2点半睡觉,除了一日三餐,其他时间均用来学习,因此考试从未低于90分,人送外号“养蛊大学不眠传说”。
你从四处打听到,牛卷风如此之强的原因在于他有一套练习计算能力的秘诀,该秘诀如下:首先给出个数字,第个数字为。接下来进行次操作,每次操作给出一个数字,练习者在心中将所有值小于等于的数字都加上。当进行完这次操作后,练习者再按顺序给出这个数字。
话不多说,你立马着手练习。首先你让朋友给出一开始的个数字和次操作的,请你给出进行完次操作后的个数字。
输入描述
第一行两个正整数,,,。
第二行个非负整数,。
接下来行,每行一个非负整数,。
输出描述
输出进行完次操作后的个数字。
示例1
输入:
5 2 1 2 3 4 5 2 3
输出:
6 4 6 4 5
C++ 解法, 执行用时: 161ms, 内存消耗: 5084K, 提交时间: 2021-07-17 15:51:52
#include<bits/stdc++.h> using namespace std; long long a[100100],b[100100]; int n,m,c,x; int main() { cin>>n>>m; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=m;i++) { cin>>x; if(x==0)continue; if(x>=b[c])b[c+1]=x,c++; } for(int i=1;i<=n;i++) { for(int j=1;j<=c;j++) { int x=lower_bound(b+j,b+c+1,a[i])-b; if(x<=c) { a[i]+=b[x]; } j=x; } cout<<a[i]<<' '; } return 0; }