ACM刷题之codeforces————Producing Snow

10人阅读 评论(0) 收藏 举报
分类:
Producing Snow
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Alice likes snow a lot! Unfortunately, this year's winter is already over, and she can't expect to have any more of it. Bob has thus bought her a gift — a large snow maker. He plans to make some amount of snow every day. On day i he will make a pile of snow of volume Vi and put it in her garden.

Each day, every pile will shrink a little due to melting. More precisely, when the temperature on a given day is Ti, each pile will reduce its volume by Ti. If this would reduce the volume of a pile to or below zero, it disappears forever. All snow piles are independent of each other.

Note that the pile made on day i already loses part of its volume on the same day. In an extreme case, this may mean that there are no piles left at the end of a particular day.

You are given the initial pile sizes and the temperature on each day. Determine the total volume of snow melted on each day.

Input

The first line contains a single integer N (1 ≤ N ≤ 105) — the number of days.

The second line contains N integers V1, V2, ..., VN (0 ≤ Vi ≤ 109), where Vi is the initial size of a snow pile made on the day i.

The third line contains N integers T1, T2, ..., TN (0 ≤ Ti ≤ 109), where Ti is the temperature on the day i.

Output

Output a single line with N integers, where the i-th integer represents the total volume of snow melted on day i.

Examples
input
Copy
3
10 10 5
5 7 2
output
Copy
5 12 4
input
Copy
5
30 25 20 15 10
9 10 12 4 13
output
Copy
9 20 35 11 25
Note

In the first sample, Bob first makes a snow pile of volume 10, which melts to the size of 5 on the same day. On the second day, he makes another pile of size 10. Since it is a bit warmer than the day before, the first pile disappears completely while the second pile shrinks to 3. At the end of the second day, he has only a single pile of size 3. On the third day he makes a smaller pile than usual, but as the temperature dropped too, both piles survive till the end of the day.


这里我是暴力做的,稍微优化一下,900ms+过了

存储所有温度的总合,遍历的时候判断当前雪是否大于剩余所有温度和,如果是的话,就舍去,计数器加一。

用优先队列也可以。我这里用的是vector


下面是ac代码

#include<bits/stdc++.h>
using namespace std;
#define MID(x,y) ((x+y)>>1)
#define CLR(arr,val) memset(arr,val,sizeof(arr))
#define FAST_IO ios::sync_with_stdio(false);cin.tie(0);
const double PI = acos(-1.0);
const int INF = 0x3f3f3f3f;
const int N=2e5+7;

int a[N],b[N], c[N]; 
vector<long> v;

int main()
{
	int n, i ,j ,k, f = 0;
	__int64 sumT = 0;
	scanf("%d", &n);
	for (i = 0 ; i < n ; i ++) {
		scanf("%d", &a[i]);
	}
	for (i = 0 ; i < n ; i ++) {
		scanf("%d", &b[i]);
		sumT += b[i];
	}
	int cnt = 0;
	__int64 sum;
	for (i = 0; i < n ; i ++) {
		sum = 0;
		if (a[i] <= b[i]) {
			sum += a[i];
		} else {
			if (a[i] >= sumT) {
				++cnt;
			} else {
				v.push_back(a[i]);
			}
			
		}
		sumT -= b[i];
		int size = v.size();
		for (int j = size - 1; j >= 0 ; j --) {
			if (v[j] <= b[i]) {
				sum += v[j];
				v.erase(v.begin() + j);
			} else {
				sum += b[i];
				v[j] -= b[i];
			}
		}
		sum += (__int64)b[i] * cnt;
		if (i == 0)
		printf("%I64d", sum);
		else printf(" %I64d", sum);
	}
	printf("\n");
	
}

查看评论

codeforces 923B producing snow

B. Producing Snow time limit per test 1 second memory limit per test 256 megabytes ...
  • mayuqing98
  • mayuqing98
  • 2018-03-13 20:30:42
  • 86

cf 923B Producing Snow

一 原题 C. Producing Snow time limit per test 1 second memory limit per t...
  • max_kibble
  • max_kibble
  • 2018-03-13 11:40:01
  • 91

【Codeforces 947B】 Producting Snow

【题目链接】         点击打开链接【算法】          前缀和 + 堆  【代码】            #include&amp;lt;bits/stdc++.h&amp;gt; us...
  • even_bao
  • even_bao
  • 2018-03-15 21:43:07
  • 42

Codeforces Round #470 C. Producing Snow

题目链接 题意就不说了。 第i个答案肯定和前v[i]个值都有关系,所以直接暴力的一发,然后肯定是T了。 然后我想不出来,参考了大佬的想法。 既然第i个答案肯定和前v[i]个值都有关系,那就构造...
  • zxy160
  • zxy160
  • 2018-03-13 20:16:13
  • 30

codeforces 913 C. Party Lemonade【思维贪心】

C. Party Lemonadetime limit per test1 second memory limit per test256 megabytesA New Year party is ...
  • nobleman__
  • nobleman__
  • 2018-01-09 10:55:33
  • 449

codeforces刷题方法

A implementation 模拟 math 数学 brute force 暴力枚举 B dp 动态规划 data structures 数据结构 C(高难度) math(数论) geometry...
  • sinat_37765046
  • sinat_37765046
  • 2017-11-29 00:39:40
  • 431

ACM刷题技巧及一些题目解答

  • 2016年01月03日 16:05
  • 20.4MB
  • 下载

写给一心刷ACM题目的学生

【来信】  老师你好,我大2013级大二的学生。大一时自学了数据结构,大二的时候参加了ACM。 现在寒假在家里刷题。可是我还想学习些东西,比如深入C 的学习,或者java。但是感觉除了刷题之外,就很迷...
  • sxhelijian
  • sxhelijian
  • 2015-02-07 11:31:15
  • 5041

ACM-ICPC 常用算法刷题网站整理

Virtual Judge ACM-ICPC Live Archive - Home UVa Online Judge - Home Welcome To PKU JudgeOnline(POJ...
  • bat67
  • bat67
  • 2017-05-26 12:47:22
  • 1963

CodeForces 947B - Producing Snow

CodeForces 947B - Producing Snow 思路 注意:数字较大,用 long long 转化:反过来考虑每一堆对每一天融化量的贡献值,即对第i堆,计算从第i天开始能...
  • Mr_Troy
  • Mr_Troy
  • 2018-03-20 14:50:23
  • 10
    个人资料
    持之以恒
    等级:
    访问量: 4万+
    积分: 1438
    排名: 3万+
    最新评论