UVa 144 - Student Grants

原创 2015年07月08日 18:21:32

題目:有n個學生排隊取錢,取款機每次給的錢數是一個遞增序列,從1開始到k后又從1開始;

            如果學生取夠40元就離開,否則回到隊尾,如果給的錢加上學生手中的錢多餘40,

            剩下的錢給下一個人,請你輸出離開的序列編號。

分析:數據結構(DS),模擬。利用隊列模擬即可,注意如果剩下的錢沒被取走,就不會出新的錢。

說明:又是好長時間沒刷題╮(╯▽╰)╭。

#include <cstring>
#include <cstdio>

typedef struct _queue
{
	int id;
	int value;
	_queue(int I, int V) { id = I; value = V; }
	_queue(){}
}queue;
queue Q[1001],Temp;

int queue_head = 0;
int queue_tail = 0;

void queue_initial()
{
	queue_head = 0;
	queue_tail = 0;
	memset(Q, 0, sizeof(Q));
}

void queue_insert(queue a)
{
	Q[queue_tail ++] = a;
}

queue queue_delete()
{
	return Q[queue_head ++];
}

int main()
{
	int n, k;
	while (~scanf("%d%d",&n,&k) && n+k) {
		queue_initial();
		for (int i = 1; i <= n; ++ i)
			queue_insert(queue(i, 0));
		int value = 1,last = 1;
		while (n) {
			Temp = queue_delete();
			last = value;
			while (n && last+Temp.value >= 40) {
				last = last+Temp.value-40;
				printf("%3d",Temp.id);
				n --;
				if (last) Temp = queue_delete();
			}
			if (last) {
				Temp.value += last;
				queue_insert(Temp);
			}
			if(++ value > k)
				value = 1;
		}
		printf("\n");
	}
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

UVa144 Student Grants

问题描述:每年学校通过自动发款机为每个学生发放40元的补助。补助的发放过程由两个部分构成:一个是自动发款机的工作过程,二是学生取款的过程。   自动发款机的工作过程是:发款机分为后台部分和前台部分。后...

New* Government Grants & Free U.s Money.

*NEW 2014 Special Pricing! Save $10!* Welcome, thank you for taking the time to learn about us. B...

SGU 318 Grants

题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=318 第二段代码修改自:http://hi.baidu.com/wjbzbmr/item/9...

c++笔试面试题43-144问

43、面向对象的三个特征 多态、封装、继承   44、C++语言的优缺点 优点: c++是面向对象的程序设计,在高级语言中,处理运行速度最快,而且还兼容了c语言 C++语言十分灵活,功能十分强大,它的...
  • zscfa
  • zscfa
  • 2017-07-18 10:33
  • 145

机器人足球2d uva球队代码

  • 2009-12-14 22:05
  • 2.77MB
  • 下载

uva最全ac代码

  • 2013-07-04 23:19
  • 4.18MB
  • 下载

leetcode(144):Binary Tree Preorder Traversal

题目Binary Tree Preorder Traversal Given a binary tree, return the preorder traversal of its nodes’ v...

Leetcode 144 - Binary Tree Preorder Traversal(二叉树前序遍历)

题意求二叉树的前序遍历。 思路分为递归实现和利用栈模拟递归实现。 递归实现的代码和思路很简单就不详细说了。关键是我们如何利用栈非递归的去实现。 关键思路就是:对于当前节点,我们递归的去对它的左子...
  • Lzedo
  • Lzedo
  • 2017-03-12 14:43
  • 112
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)