#B. 代码至高无上

    传统题 100ms 256MiB

代码至高无上

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目背景

在遥远的“代码王国”中,编程被视为一种至高无上的艺术,而循环则是这种艺术中最为强大的元素之一。在这个王国里,所有的事物都是通过循环来完成的,从日出日落到四季更替,一切都遵循着循环的规律。

在代码王国中,有一个名叫艾文的年轻学者,他对循环的力量充满了好奇和渴望。艾文经过多年的学习,终于接触到了循环的奥秘,特别是for循环,这是王国中最常用的循环形式之一。然而,for循环的复杂性让艾文感到困惑,他不确定一个给定的for循环会执行多少次,有时甚至会陷入无尽的死循环。

艾文的导师,智慧的长者,给了他一个挑战:分析一个for循环,并确定它将输出多少次“代码至高无上”的声明。如果循环是无限的,那么输出应该是-1。

经常拿csp-j一等奖的小朋友都知道,for循环有以下两类

第一类如下:

for(int i=a;i<=b;i=i+c){

      cout<<"代码至高无上"<<endl;

}

第二类如下:

for(int i=a;i>=b;i=i-c){

      cout<<"代码至高无上"<<endl;
}

输入格式

一行共四个整数 nnaabbcc

当n为1,表示为上述的第一类循环,n为2时表示为上述第二类循环。a为循环的起点值,b为终值,c为步长

输出格式

输出一个整数,表示会输出多少次"代码至高无上",如果为死循环则输出-1。

样例输入 1

1 1 10 1

样例输出 1

10

样例解释 1

n=1,a=1b=10c=1n=1,a=1,b=10,c=1 时,为第一类循环,起点为1,终点值为10,步长为1,会输出10次"代码至高无上"。

for(int i=1;i<=10;i=i+1){

     cout<<"代码至高无上"<<endl;
}

样例输入 2

2 10 1 1

样例输出 2

10

样例解释 2

n=2,a=10b=1c=1n=2,a=10,b=1,c=1 时,为第二类循环,起点为10,终点值为1,步长为1,会输出10次"代码至高无上"。

for(int i=10;i>=1;i=i-1){
      cout<<"代码至高无上"<<endl;
}

样例输入 3

1 1 10 0

样例输出 3

-1

样例解释 3

n=1,a=1b=10c=0n=1,a=1,b=10,c=0 时,为第一类循环,起点为1,终点值为10,步长为0,为死循环,所以输出-1

for(int i=1;i<=10;i=i+0){
     cout<<"代码至高无上"<<endl;
}

数据范围

对于 40%40\% 的数据,保证循环次数不超过10510^5

对于 100%100\% 的数据,1n21\le n\le 20ab2109 0 \le a,b \le 2*10^{9} ,0c1000 \le c\le 100

乔斯月赛内测

未参加
状态
已结束
规则
IOI
题目
4
开始于
2024-5-28 16:00
结束于
2024-5-28 18:00
持续时间
0.1 小时
主持人
参赛人数
14