赞
踩
相信大家一定有过在网上下载软件而碰到多个不同版本的情况。一般来说,软件的版本号由三个部分组成,主版本号(Major Version Number),子版本号(Minor Version Number)和修订号(Revision_Number)。当软件进行了重大的修改时,主版本号加一;当软件在原有基础上增加部分功能时,主版本号不变,子版本号加一;当软件仅仅修正了部分bug时,主版本号和子版本号都不变,修正号加一。
在我们比较软件的两个版本的新旧时,都是先比较主版本号,当主版本号相同时再比较子版本号,前两者都相同的情况下再比较修正号。版本号越大的软件越新。
现在,小明在下载软件的时候碰到了两个版本,请你告诉他哪个版本更新一些。
输入的第一行有一个整数T,代表有T组测试。
接下来有T组测试。
每组测试分两行,第一行有三个整数代表第一个软件版本的主版本号,子版本号和修订号。第二行也有三个整数代表第二个软件版本的主版本号,子版本号和修订号。
数据中出现的整数都在[0,1000]范围之内。
对于每组测试,如果第一个软件的版本新点,请输出First,如果第二个软件的版本新点,请输出Second,否则输出Same。
输入:
3
1 1 0
1 1 1
1 1 1
1 1 0
1 1 1
1 1 1
输出:
Second
First
Same
- #include<bits/stdc++.h>
- using namespace std;
- struct node
- {
- int x,y;
- }a[10005];
- int n;
- int main(){
- cin>>n;
- for(int i=0;i<n;i++)
- {
- bool f=false;
- for(int j=0;j<3;j++)cin>>a[j].x;
- for(int j=0;j<3;j++)cin>>a[j].y;
- for(int j=0;j<3;j++)
- {
- if(a[j].x>a[j].y){cout<<"First";f=true;break;}
- else if(a[j].x<a[j].y){cout<<"Second";f=true;break;}
- }
- if(f==false)cout<<"Same";
- cout<<"\n";
- }
- return 0;
- }
小明在学习信息学编程时,设计了一款游戏:初始时勇士的能力值为n,通往城堡的路上有m个挑战者,第i个挑战者的能力值为a[i]。勇士只能按照顺序依次迎战挑战者。当勇士的能力值大于等于挑战者时,视为勇士胜利,可以继续迎战下一位,否则视为失败,游戏直接结束。现在请你找出勇士在失败或全部通关后,他击败的挑战者里最强那位的能力值是多少。若一个都无法击败,则输出0。
第一行,两个整数n和m。
第二行,m个整数,第i个整数为第i个挑战者的能力值a[i]。
输出一个整数,为勇士在失败或全部通关后,他击败的挑战者里最强那位的能力值。
输入:
100 4
98 77 123 56
输出:
98
输入:
130 4
98 77 123 56
输出:
123
【样例说明】
样例1中,勇士的能力值是100,共有4位挑战者,能力值分别为98、77、123、56。勇士能够击败第1、2位挑战者,但无法击败第3位,因此在他击败的挑战者里,最强那位的能力值是98。
样例2中,勇士的能力值是130,共有4位挑战者,能力值分别为98、77、123、56。勇士能够击败所有的挑战者,因此在他击败的挑战者里,最强那位的能力值是123。
【数据范围】
对于100%的数据,1≤n,m,a[i]≤10000。
- #include<bits/stdc++.h>
- using namespace std;
- int m,n,a,maxx;
- int main(){
- cin>>n>>m;
- for(int i=0;i<m;i++)
- {
- cin>>a;
- if(a>n)break;
- else if(a<=n){if(a>maxx)maxx=a;}
- }
- cout<<maxx;
- return 0;
- }
城市道路的交叉路口通常设置有绿灯、黄灯和红灯三种状态的交通灯,它们的作用是:当绿灯亮时,表示车辆可通行;当黄灯亮时,提醒正在交叉路口中行驶的车辆赶快离开;当红灯亮,车辆要在停车线后停驶。
交通灯的状态经过红灯、黄灯和绿灯为一个周期,假设在每一周期中绿灯时间为30秒,红灯时间为20秒,路口上车辆的疏通速度是0.6辆/秒。(黄灯时间一般很短这里忽略不计)
交警队长需要你帮忙计算出第n个周期后滞留下来的车辆数量,以便采取更有效的措施改进交通状况。
共有n+2行:
第1行为要计算滞留车辆数的周期n;
第2行为第1周期开始时由前一周期滞留下来的车辆数;
第3至n+2行分别为第1至n周期的车辆到达数。每行有两个数,第1个为红灯时的车辆到达数,第2个为的绿灯时的车辆到达数。
以上所有输入数据均为[0,100]。
只有一个数:经过第n周期后,滞留下来的车辆数。
输入:
1
2
3 5
输出:
0
输入:
2
5
8 12
6 9
输出:
4
- #include<bits/stdc++.h>
- using namespace std;
- int n,m,sum;
- int main(){
- cin>>n>>m;
- sum=m;
- for(int i=0;i<n;i++)
- {
- int a,b;
- cin>>a>>b;
- sum+=a+b;
- if(sum<=18)sum=0;
- else sum-=18;
- }
- cout<<sum;
- return 0;
- }
挂盐水的时候,如果滴起来有规律,先是滴一滴,停一下;然后滴二滴,停一下;再滴三滴,停一下...,现在有一个问题:这瓶盐水一共有VUL毫升,每一滴是D毫升,每一滴的速度是一秒(假设最后一滴不到D毫升,则花费的时间也算一秒),停一下的时间也是一秒这瓶水什么时候能挂完呢?
输入数据包含多个测试实例,每个实例占一行,由VUL和D组成,其中 0<D<VUL<5000。
对于每组测试数据,请输出挂完盐水需要的时间,每个实例的输出占一行。
输入:
10 1
输出:
13
- #include<bits/stdc++.h>
- using namespace std;
- int n,m,sum;
- int main(){
- cin>>n>>m;
- for(int i=1;;i++)
- {
- for(int j=1;j<=i;j++)
- {
- sum++;
- n-=m;
- if(n<=0)
- {
- cout<<sum;
- return 0;
- }
- }
- sum++;
- }
- }
文景收到了N(1≤N≤4×10^5)个奇怪的球,球摆成一列,每个球的表面都写着一个数字,第i个球的表面数字是a[i](2≤a[i]≤4×10^5)。
文景准备将所有的球从1到N依次放入桶中。桶是圆柱形的,底面是封死的,只能从圆柱形顶端放入。桶比较窄,桶中的球只能全部竖着叠放。
文景在放球的过程中,奇怪的事情发生了,如果桶中有连续x个值为x的球,这些球将会消失。
请你帮助文景计算出,从1到N依次放入每个球后,桶中的球有多少个?
第一行一个正整数N;
第二行N个正整数,从1到N依次表示每个球表面的数字。
【时间限制、数据范围及描述】:
时间:1s 空间:256M
对于30%的数据:1≤N≤10^4;2≤a[i]≤100;
对于100%的数据:1≤N≤4×10^5;2≤a[i]≤4×10^5;
输出N行,每行一个整数,第i行表示放完第i个球后桶中球的个数。
输入:
5
3 2 3 2 2
输出:
1
2
3
4
3
输入:
10
2 3 2 3 3 3 2 3 3 2
输出:
1
2
3
4
5
3
2
3
1
0
考虑样例1:
第1个球放入后,桶中球从下至上依次为:3
第2个球放入后,桶中球从下至上依次为:3 2
第3个球放入后,桶中球从下至上依次为:3 2 3
第4个球放入后,桶中球从下至上依次为:3 2 3 2
第5个球放入后,桶中球从下至上依次为:3 2 3
- #include<bits/stdc++.h>
- using namespace std;
- long long a[400005],n,t=1,s[400005];
- int main(){
- scanf("%d",&n);
- for(int i=1;i<=n;i++)
- {
- scanf("%d",&a[t]);
- if(a[t]==a[t-1])s[t]=s[t-1]+1;
- else s[t]=1;
- if(a[t]==s[t])t=t-s[t];
- printf("%d\n",t);
- t++;
- }
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。