Getting Driving License

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 347    Accepted Submission(s): 78

Problem Description
Have you got a driving license? Acquiring a driving license brings
you a lot of benefits. You will regret for not passing the driving test
or getting a driving license in your campus life. Why?College life is
filled with much spare time,which you can use to improve yourself in
many fields such as driving.
During the time of taking driving
lessons,Samuel met a lot of classmates whose time are occupied by their
own work. The fact that they have little time to practice makes getting
driving license increasingly difficult. Passing the driving test as
soon as possible is suggested by these mates to the our college students
who cannot drive.
Know something about the driving test you
can read the information in the background section,however,it is not
related with this problem firmly. Surely,you can go to the problem
section directly.
Here is the background information on owning driving licenses in China mainland:
To get a driving license successfully,you need to take about 4 tests at least.
The first part is the theory exam which helps you know clearly
about the transportation law in China mainland and other driving theory.
The second is to test you whether you can drive a car forward
out and backward in the garage at a very low speed(like aunts
moving),move the car from one garage to another and drive out.

The third section you need to pass is a little difficult than the
second test. In this section,you should be able to drive to avoid the
obstacles on the road,manage your car pass S formed way(your car's
wheels can not be moved onto one of the tracks which leads your way
out),after that you may have to make your car pass the 90 degree angle
track,then pass the course equipped with very low bridge using one side
of your car's wheel and so on.
The forth part which is test
the same day with the third test is called road driving test(but in the
problem I designed the time between Part 3 and Part 4 is 1 month,just
want to make the problem much easier).As you can refer from the word,it
tests the ability of driving on the road,it is more practical and of
more importance.
If you seems not very lucky,you will have
fifth section(The problem does not include the 5th part,you can ignore
it in solving the problem).In this part you are required to driving at
night which involves changing lights in addition . Teachers never taught
how to drive at night unless your group is asked to take part in this
test. But on the contrary,taught how to driving at night,of course,is
necessary. Samuel had an experience of taking the fifth test to get the
driving license in the summer of 2008. Tell you a secret,next time you
meet a car comes from an opposite direction and the driver of that car
does not change his front lights ,it probably means he/she needs special
training on how to drive at night.
To get a driving
license,you should pass the 4 parts one by one. For example,if you
failed in the section 2,you have to retry for a second time,third
time...before you pass. After that you have the opportunity to enter
Part 3.
Here is the problem section you need read patiently:
Some details you need to know:
1.The time between the two tests is generally about 1 month(If
you fail in the test on your first attempt,you can try it a second time.
Fail again the second time he have to go home and retry after 1 month).

2.And the time from you take the first test to your owning a license is within 2 years.
3.What's more,the passing score in Part 1 test is 90(that is to
say if you get 89 or even lower at your first attempt,a second attempt
is needed. You will pass until you get 90 or higher at the second
time)and each of the rest parts the passing score is 80 at least.
 
Input
The input consists 2 major sections as usual,
the
test cases t,each of the test case involves an integer n and n scores
one gets in the test and with n scores he passed the test or he failed
to pass in the 2 years(of course here n>=4). All the number here are
integers.
 
Output
Output
is simple. Just output the time one needs to get a driving license (if
time is within 2 years)using the format “It takes about m months to get a
driving license.”If time is beyond 2 years please output the sentence
“He failed to get a driving license within 2 years! ”
 
Sample Input
3
5
89 90 95 84 80
7
80 90 70 80 75 85 80
7
80 90 70 70 80 85 85
 
Sample Output
It takes about 3 months to get a driving license.
It takes about 3 months to get a driving license.
It takes about 4 months to get a driving license.
Hint: In the first case:first attempt on trying theory test was totally a failure,so he tried a second time the same day and he succeeded. The second test was taken 1 month later,so it cost 1 month so far. Fortunately, he passed. After 1 month he took part 3 and he passed,he waited for another 1 month to attend the part 4 test and succeed. So the total time he needs is 3 months. In the second case:80 90(part 1,passed)70 80(1 months later passed)75 85 (another 1 month he succeed)80(1 month later he passed and he get the license finally).It took 3 months. In the 3rd case the second part he took for three times ,so you need to add another 1 month to the result of the second case. Hope I have made myself understood.
模拟,第三部分和第四部分有点特殊,前两个部分每月只有两次机会,用完月份加一,考试通过月份加一,注意两年未通过输出时最后没有空格。
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#include <cstdlib>
#include <iomanip>
#include <cmath>
#include <cassert>
#include <ctime>
#include <map>
#include <set>
using namespace std;
#define lowbit(x) (x&(-x))
#define max(x,y) (x>y?x:y)
#define min(x,y) (x<y?x:y)
#define MAX 100000000000000000
#define MOD 1000000007
#define pi acos(-1.0)
#define ei exp(1)
#define PI 3.141592653589793238462
#define ios() ios::sync_with_stdio(false)
#define INF 1044266558
#define mem(a) (memset(a,0,sizeof(a)))
typedef long long ll;
int n,x,t;
int main()
{
scanf("%d",&t);
while(t--)
{
int pos=,ok=,flag=,k=;
scanf("%d",&n);
for(int i=;i<n;i++)
{
scanf("%d",&x);
//printf("%d %d\n",x,pos);
if(flag==)
{
if(x<) ok++;
else if(x>=) {ok=;pos++,flag=;continue;}
if(ok==) pos+=,ok=;
}
else if(flag==)
{
if(x<) ok++;
else if(x>=) {ok=;pos++,flag=;continue;}
if(ok==) pos+=,ok=;
}
else if(flag==)
{
if(k==)
{
if(x<) ok++;
else if(x>=) {ok=;k=;continue;}
if(ok==) pos+=;
}
else if(k==)
{
if(x<) ok++;
else if(x>=) {ok=;continue;}
if(ok==) pos+=;
}
}
}
if(pos<=) printf("It takes about %d months to get a driving license.\n",pos);
else printf("He failed to get a driving license within 2 years!\n");
}
return ;
}
/*
4
17
70 70 70 70 95 70 70 70 95 70 70 70 95 70 70 70 95
5
89 90 95 84 80
7
80 90 70 80 75 85 80
7
80 90 70 70 80 85 85
*/

HDU 2633 Getting Driving License(模拟)的更多相关文章

  1. HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011亚洲北京赛区网络赛)

    HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011 亚洲北京赛区网络赛题目) Eliminate Witches! Time Limit: 2000/1000 ...

  2. HDU 5948 Thickest Burger 【模拟】 (2016ACM/ICPC亚洲区沈阳站)

    Thickest Burger Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  3. HDU 5920 Ugly Problem 【模拟】 (2016中国大学生程序设计竞赛(长春))

    Ugly Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  4. HDU 5873 Football Games 【模拟】 (2016 ACM/ICPC Asia Regional Dalian Online)

    Football Games Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  5. HDU 4814 Golden Radio Base 模拟

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4814 题目大意: 把一个正整数表示为φ进制, φ = (1+√5)/2 . 且已知: 1. φ + 1 ...

  6. HDU 5504 GT and sequence 模拟

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5504 思路:模拟 代码: #include<stdio.h>//------杭电5504 ...

  7. hdu 5071 vector操作恶心模拟

    http://acm.hdu.edu.cn/showproblem.php?pid=5071 对于每一个窗口,有两个属性:优先级+说过的单词数,支持8个操作:新建窗口,关闭窗口并输出信息,聊天(置顶窗 ...

  8. hdu 4902 线段树+逆向模拟

    http://acm.hdu.edu.cn/showproblem.php?pid=4902 出n个数,然后对这n个数进行两种操作: 如果是 1 l r x,则把 [l, r] 区间里面的每一个数都变 ...

  9. HDU 5186 zhx's submissions 模拟,细节 难度:1

    http://acm.hdu.edu.cn/showproblem.php?pid=5186 题意是分别对每一位做b进制加法,但是不要进位 模拟,注意:1 去掉前置0 2 当结果为0时输出0,而不是全 ...

随机推荐

  1. CentOS6.9下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数

    密钥登录步骤(免密码登录)ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,出于安全方面的考虑,介绍密钥认证方式登录到linux/unix的方 ...

  2. jQuery实现tab标签切换效果

    技巧一.jQuery :eq() 选择器 定义和用法 :eq() 选择器选取带有指定 index 值的元素. index 值从 0 开始,所有第一个元素的 index 值是 0(不是 1). 经常与其 ...

  3. Java导出csv修正时间格式

    处理前导出的日期格式为:yyyy-M-d HH:mm 正确的应该是:yyyy-MM-dd HH:mm:ss 处理方案是在 时间数据两边增加 "\t" 有问题欢迎交流. thanks ...

  4. keytool常用操作

    keytool 秘钥需要存储在秘钥库中,秘钥库可以理解为一个存储了一个或多个秘钥的文件.一个秘钥库可以存储多个密钥对,每个秘钥对你都需要给他们取一个名字. D:\software\Java\jdk1. ...

  5. UVALive 5790 Ball Stacking DP

    DP的方向真的很重要,这题做的时候死活想不出来,看了题解以后恍然大悟原来这么简单. 题意: 有n层堆成金字塔状的球,若你要选一个球,你必须把它上面那两个球取了,当然也可以一个不取.求选的球最大的权值和 ...

  6. 第三讲 $\mathbb{R}^4$上平凡主丛的联络、曲率与Yang-Mills泛函

    一. $\mathbb{R}^4$或$\mathbb{R}^n$上平凡主丛的联络与曲率$\newcommand{\R}{\mathbb{R}}$ 回忆切丛$T\R^n\cong \R^n\times\ ...

  7. Android 5.0(Lollipop)中的SurfaceTexture,TextureView, SurfaceView和GLSurfaceView

    SurfaceView, GLSurfaceView, SurfaceTexture以及TextureView是Android当中名字比较绕,关系又比较密切的几个类.本文基于Android 5.0(L ...

  8. RPC和Socket

    RPC和Socket的区别 rpc是通过什么实现啊?socket! RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的 ...

  9. javascript中运算符有哪些? 他们的优先级 呢?

    一元操作符 ++, -- + -(正负)逻辑操作符 ! && ||基本运算符 +, -, *, /, %关系操作符 >, <, >=, <=, ===, ==, ...

  10. @Transactional 事务注解

    @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.SERIALIZABLE, rollbackFor = ...