CodeForces - 670D1 Magic Powder - 1 (模拟)

CodeForces - 670D1

Magic Powder - 1

Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u

Submit
Status

Description

This problem is given in two versions that differ only by constraints. If you can solve this problem in large constraints, then you can just write a single solution to the both versions. If you find the problem too difficult
in large constraints, you can write solution to the simplified version only.

Waking up in the morning, Apollinaria decided to bake cookies. To bake one cookie, she needs
n ingredients, and for each ingredient she knows the value
ai — how many grams of this ingredient one needs to bake a cookie. To prepare one cookie Apollinaria needs to use all
n ingredients.

Apollinaria has bi gram of the
i-th ingredient. Also she has
k grams of a magic powder. Each gram of magic powder can be turned to exactly
1 gram of any of the n ingredients and can be used for baking cookies.

Your task is to determine the maximum number of cookies, which Apollinaria is able to bake using the ingredients that she has and the magic powder.

Input

The first line of the input contains two positive integers
n and k (1?≤?n,?k?≤?1000) — the number of ingredients and the number of grams of the magic powder.

The second line contains the sequence a1,?a2,?...,?an (1?≤?ai?≤?1000),
where the i-th number is equal to the number of grams of the
i-th ingredient, needed to bake one cookie.

The third line contains the sequence b1,?b2,?...,?bn (1?≤?bi?≤?1000),
where the i-th number is equal to the number of grams of the
i-th ingredient, which Apollinaria has.

Output

Print the maximum number of cookies, which Apollinaria will be able to bake using the ingredients that she has and the magic powder.

Sample Input

Input

3 1
2 1 4
11 3 16

Output

4

Input

4 3
4 3 5 6
11 12 14 20

Output

3

Sample Output

Hint

Source

Codeforces Round #350 (Div. 2)

//题意:输入n,m;  m表示的事魔法元素的数量,每个魔法元素可以转变成任意一个其他的元素;

表示制作饼干需要n种元素,并且制作一个饼干所需的每种元素的的数量是a[i],现在给你每种元素的数量b[i],问你最多可以制作几个饼干?

//思路:

因为n是1000,所以直接模拟,最多是1000*1000;

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#define INF 0x3f3f3f3f
#define N 1010
using namespace std;
int a[N],b[N];
struct zz
{
	int a;
	int b;
	int c;
}p[N];
int main()
{
	int n,k,i;
	while(scanf("%d%d",&n,&k)!=EOF)
	{
		int sum=0;
		for(i=0;i<n;i++)
			scanf("%d",&a[i]);
		for(i=0;i<n;i++)
			scanf("%d",&b[i]);
		int mm=INF;
		for(i=0;i<n;i++)
		{
			p[i].a=b[i]/a[i];
			p[i].b=b[i]%a[i];
			p[i].c=a[i]-p[i].b;
			mm=min(mm,p[i].a);
		}
		while(1)
		{
			for(i=0;i<n;i++)
			{
				if(p[i].a==mm)
				{
					if(k<p[i].c)
						break;
					else
					{
						k-=p[i].c;
						p[i].c=a[i];
						p[i].a=mm+1;
					}
				}
			}
			if(i==n)
				mm++;
			else
				break;
		}
		printf("%d\n",mm);
	}
	return 0;
} 
时间: 2024-10-15 19:18:46

CodeForces - 670D1 Magic Powder - 1 (模拟)的相关文章

codeforces 670D1 - Magic Powder - 1

题目的意思,就是给出制作一种食物的每种材料所需的量,然后再给出每种材料目前总共的数量,问最多可以制作多少个这样的食物. 贪心.首先求出每种材料是总共有多少个这样的材料,然后由小到大排序,然后再用一个数组存那个后一个大的量的材料减去前面所有小的量的差,因为比如,有3种材料,每种材料的量分别是1, 2,4, 就需要sum[1] = 1, sum[2] = 3,然后就是贪心的计算了. #include <bits/stdc++.h> using namespace std; const int MA

CodeForces - 670D2 Magic Powder - 2 (二分&amp;模拟)

CodeForces - 670D2 Magic Powder - 2 Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit Status Description The term of this problem is the same as the previous one, the only exception - increased restrictions. Input Th

Codeforces 670D2 Magic Powder - 2 二分答案

Waking up in the morning, Apollinaria decided to bake cookies. To bake one cookie, she needs n ingredients, and for each ingredient she knows the value ai - how many grams of this ingredient one needs to bake a cookie. To prepare one cookie Apollinar

Codeforces 670D. Magic Powder

Waking up in the morning, Apollinaria decided to bake cookies. To bake one cookie, she needs n ingredients, and for each ingredient she knows the value ai - how many grams of this ingredient one needs to bake a cookie. To prepare one cookie Apollinar

codeforces 670D2 - Magic Powder - 2

和前面的那道题一样,就只改了数组的大小和数据类型. #include <bits/stdc++.h> using namespace std; const int MAX = 1e5 + 5; //int a[MAX], b[MAX], c[MAX]; typedef __int64 ll; struct NODE { ll a, b, c; }node[MAX]; ll sum[MAX]; bool comp(NODE a, NODE b) { return a.c < b.c; }

Magic Powder - 1 CodeForces - 670D1

This problem is given in two versions that differ only by constraints. If you can solve this problem in large constraints, then you can just write a single solution to the both versions. If you find the problem too difficult in large constraints, you

CodeForces 670D1 暴力或二分

今天,开博客,,,激动,第一次啊 嗯,,先来发水题纪念一下 D1. Magic Powder - 1 This problem is given in two versions that differ only by constraints. If you can solve this problem in large constraints, then you can just write a single solution to the both versions. If you find

Magic Powder - 2 (CF 670_D)

http://codeforces.com/problemset/problem/670/D2 The term of this problem is the same as the previous one, the only exception — increased restrictions. Input The first line contains two positive integers n and k (1 ≤ n ≤ 100 000, 1 ≤ k ≤ 109) — the nu

Codeforces 475C Kamal-ol-molk&#39;s Painting 模拟

题目链接:点击打开链接 题意:给定n*m的矩阵 X代表有色 .代表无色 用一个x*y的矩阵形刷子去涂色. 刷子每次可以→或↓移动任意步. 若能够染出给定的矩阵,则输出最小的刷子的面积 若不能输出-1 思路: 先找到连续最小的x,y 因为至少一个边界和x或y相等,所以枚举(x,i) 和 (i,y)就可以了. #pragma comment(linker, "/STACK:102400000,102400000") #include <stdio.h> #include <