Codeforces Round #325 (Div. 2) C. Gennady the Dentist 暴力
C. Gennady the Dentist
Time Limit: 1 Sec
Memory Limit: 256 MB
题目连接
http://codeforces.com/contest/586/problem/C
Description
Gennady is one of the best child dentists in Berland. Today n children got an appointment with him, they lined up in front of his office.
All children love to cry loudly at the reception at the dentist. We enumerate the children with integers from 1 to n in the order they go in the line. Every child is associated with the value of his cofidence pi. The children take turns one after another to come into the office; each time the child that is the first in the line goes to the doctor.
While Gennady treats the teeth of the i-th child, the child is crying with the volume of vi. At that the confidence of the first child in the line is reduced by the amount of vi, the second one — by value vi - 1, and so on. The children in the queue after the vi-th child almost do not hear the crying, so their confidence remains unchanged.
If at any point in time the confidence of the j-th child is less than zero, he begins to cry with the volume of dj and leaves the line, running towards the exit, without going to the doctor's office. At this the confidence of all the children after the j-th one in the line is reduced by the amount of dj.
All these events occur immediately one after the other in some order. Some cries may lead to other cries, causing a chain reaction. Once in the hallway it is quiet, the child, who is first in the line, goes into the doctor's office.
Help Gennady the Dentist to determine the numbers of kids, whose teeth he will cure. Print their numbers in the chronological order.
Input
The first line of the input contains a positive integer n (1 ≤ n ≤ 4000) — the number of kids in the line.
Next n lines contain three integers each vi, di, pi (1 ≤ vi, di, pi ≤ 106) — the volume of the cry in the doctor's office, the volume of the cry in the hall and the confidence of the i-th child.
i,Ci,即此题的初始分值、每分钟减少的分值、dxy做这道题需要花费的时间。
Output
In the first line print number k — the number of children whose teeth Gennady will cure.
In the second line print k integers — the numbers of the children who will make it to the end of the line in the increasing order.
Sample Input
5
4 2 2
4 1 2
5 2 4
3 3 5
5 1 2
Sample Output
2
1 3
HINT
题意
一堆小孩要去看牙医,小孩进入牙医之后,就会发出叫声,使得接下来的v[i]个孩子的信心分别下降v[i],v[i]-1......1这么多
如果小孩被吓跑了,他们又会叫,使得接下来的孩子发出d[i]的叫声
然后问你一共有多少人能够看病,并且是哪些人
题解:
数据范围只有4000,那就n^2暴力就好了
有两个坑点:
1.爆int
2.得v[i]减完之后,大家再一起叫d[i]的,不是边v[i]边d[i]
代码:
#include<stdio.h>
#include<iostream>
#include<math.h>
#include<iostream>
#include<cstring>
#include<vector>
using namespace std; long long v[],d[],p[];
long long ans[];
long long flag[];
int n;
int main()
{
memset(flag,,sizeof(flag));
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%lld%lld%lld",&v[i],&d[i],&p[i]);
int tot = ;
for(int i=;i<=n;i++)
{
if(p[i]<)continue;
ans[tot++]=i;
long long sum=;
long long time = v[i];
for(int j=i+;j<=n;j++)
{
flag[j]=;
if(p[j]>=)
{
flag[j]=;
if(time>)
p[j]-=time;
time--;
}
}
for(int j=i+;j<=n;j++)
{
if(p[j]>=)
p[j]-=sum;
if(p[j]<&&flag[j])
sum+=d[j];
}
}
printf("%d\n",tot);
for(int i=;i<tot;i++)
printf("%lld ",ans[i]);
printf("\n");
}
Codeforces Round #325 (Div. 2) C. Gennady the Dentist 暴力的更多相关文章
- Codeforces Round #325 (Div. 2)          A. Alena's Schedule      暴力枚举  字符串
		
A. Alena's Schedule time limit per test 1 second memory limit per test 256 megabytes input standard ...
 - Codeforces Round #297 (Div. 2)D. Arthur and Walls 暴力搜索
		
Codeforces Round #297 (Div. 2)D. Arthur and Walls Time Limit: 2 Sec Memory Limit: 512 MBSubmit: xxx ...
 - Codeforces Round #325 (Div. 2)
		
水 A - Alena's Schedule /************************************************ * Author :Running_Time * Cr ...
 - Codeforces Round #325 (Div. 2) F. Lizard Era: Beginning meet in the mid
		
F. Lizard Era: Beginning Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...
 - Codeforces Round #325 (Div. 2) D. Phillip and Trains BFS
		
D. Phillip and Trains Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/586/ ...
 - Codeforces Round #325 (Div. 2) A. Alena's Schedule 水题
		
A. Alena's Schedule Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/586/pr ...
 - Codeforces Round #325 (Div. 2) B. Laurenty and Shop 前缀和
		
B. Laurenty and Shop Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/586/p ...
 - Codeforces Round #325 (Div. 2) Phillip and Trains dp
		
原题连接:http://codeforces.com/contest/586/problem/D 题意: 就大家都玩过地铁奔跑这个游戏(我没玩过),然后给你个当前的地铁的状况,让你判断人是否能够出去. ...
 - Codeforces Round #325 (Div. 2) Laurenty and Shop 模拟
		
原题链接:http://codeforces.com/contest/586/problem/B 题意: 大概就是给你一个两行的路,让你寻找一个来回的最短路,并且不能走重复的路. 题解: 就枚举上下选 ...
 
随机推荐
- poj1195Mobile phones(二维树状数组)
			
http://poj.org/problem?id=1195 模版题 i写成k了 找了一个多小时没找出来.. #include <iostream> #include<cstring ...
 - 让ie6支持fixed最简单和实用的方法
			
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
 - Terrocotta - 基于JVM的Java应用集群解决方案
			
前言 越来越多的企业关键应用都必须采用集群技术,实现负载均衡(Load Balancing).容错(Fault Tolerance)和灾难恢复(Failover).以达到系统可用性(High Avai ...
 - apache开源项目--OpenMeetings
			
OpenMeetings是一个多语言可定制的视频会议和协作系统.它支持音频.视频,能让你查看每个与会者的桌面.OpenMeetings还包含一个白板,通过白板可以导入各种格式的图片和涂鸦. 在线演示: ...
 - Ruby准备工作
			
解释性语言,自上而下执行,纯面向对象,跨平台,动态绑定,没有多重继承.NetBeans sun公司开发irb指令可快速实时输入并返回结果 quit 或者exitrdoc hello.rb 生成html ...
 - colspan在浏览器中失效的问题
			
<table border=" style="border-collapse:collapse;"> <tr> <td>def< ...
 - Android学习的一些问题
			
如何让Service常驻后台? 如何让App自启动? 如何让App自动更新? Handler Adapter Bundle Application getXXX()
 - 《Python基础教程(第二版)》学习笔记 -> 第五章 条件、循环 和 其他语句
			
条件和条件语句 下面的值在作为布尔表达式的时候,会被解释器看作假(False):False None 0 "" () [] {} 条件执行和if语句 ...
 - jquery 单行滚动、批量多行滚动、文字图片翻屏滚动效果代码
			
jquery单行滚动.批量多行滚动.文字图片翻屏滚动效果代码,需要的朋友可以参考下. 以下代码,运行后,需要刷新下,才能加载jquery,要不然看不到效果.一.单行滚动效果 <!DOCTYPE ...
 - ASP.NET入门(class0612)
			
内容:掌握基于ASP.Net的Web开发,B/S结构原理.ASP.Net内部原理.状态管理(Cookie.Session.ViewState等).数据验证.普通ASP.Net控件.母版.ListVie ...