2020年智算之道初赛第三场 - 高校组Java题解

A.水杯

http://oj.csen.org.cn/contest/9/26

题目描述

这里是引用小小 DD 有一个能显示温度的杯子. 其原理是杯盖上的一个传感器. 只有在杯子内的水的体积大于等于某个数 LL 的时候传感器才能显示水温,并且如果水温不在 [A,B] 内传感器也无法显示水温.
注意,这里温度对水的体积没有影响
初始水杯为空,有 nn 次操作,操作分为三种:

  • 1 x 表示把水温变成 xx.
  • 2 x 表示把水的体积变成 xx.
  • 3 查询传感器的显示情况. 如果不能显示水温输出 GG,否则输出水温.

输入格式

第一行四个整数 n,L,A,Bn,L,A,B,含义如题目所示.
接下来 nn 行,每行一个整数 optopt 或两个整数 opt,xopt,x,表示执行操作 optopt.

输出格式

对于所有操作 3 输出结果,每行一个答案.

数据规模与约定

对于 100% 的数据,1≤n≤1000,-273≤A≤B≤100,1≤L≤1000,1≤opt≤3.
对于操作 1,-273≤x≤100;对于操作 2,1≤x≤1000.

样例输入

5 2 1 3
1 5
2 3
3
1 2
3

样例输出

GG
2

对于 的数据,直接按照题意模拟即可。
下面是AC代码:

import java.util.ArrayList;
import java.util.Scanner;

public class cup {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		int L = in.nextInt();
		int A = in.nextInt();
		int B = in.nextInt();
		ArrayList<String> ans = new ArrayList<String>();
		int temp = 0;
		int vector = 0;
		for (int i = 0; i < n; i++) {
			int n1 = in.nextInt();
			if (n1 == 1) {
				temp = in.nextInt();
				continue;
			}
			if (n1 == 2) {
				vector = in.nextInt();
				continue;
			}
			if (n1 == 3) {
				if (vector > L && temp >= A && temp <= B) {
					ans.add(String.valueOf(temp));
				} else {
					ans.add("GG");
				}
				continue;
			}
		}
		for (String x : ans) {
			System.out.println(x);
		}
	}
}

你可能感兴趣的:(竞赛题目)