Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.math.BigInteger;
- public class Demo {
- static boolean check(StringBuilder ex){
- int n = ex.length();
- boolean num = true;
- boolean op = false;
- int numberLength = 0;
- int num1 = 0;
- int num2 = 0;
- int zC = 0;
- char oper = '+';
- for(int i=0;i<n;){
- zC =0;
- numberLength = 0;
- num1 = 0;
- if(ex.charAt(i) == ' '){i++;continue;}
- if(num && (ex.charAt(i) -'0' > 9 || ex.charAt(i)-'0' < 0))return false;
- if(num){
- for(;i<n;i++){
- op = true;
- if(ex.charAt(i)-'0' > 9 || ex.charAt(i)-'0' < 0 || ex.charAt(i) == ' ')break;
- if(num && ex.charAt(i) == '0' && zC > 1)return false;
- else if(num && ex.charAt(i) == '0')zC++;
- else if(zC > 0 && ex.charAt(i) > '0' && ex.charAt(i) <= '9')return false;
- num = false;
- numberLength++;
- num1*=10;
- num1+= ex.charAt(i)-'0';
- }
- if(numberLength > 5)return false;
- if(oper == '+')num2 += num1;
- else if(oper == '-')num2 -= num1;
- else if(oper == '*')num2 *= num1;
- else if(oper == '/'){
- if(num1 == 0)return false;
- num2 /= num1;}
- else return false;
- if(num2 < 0 || num2 >= 100000)return false;
- }
- else if(op){
- oper = ex.charAt(i);
- op = false;
- num = true;
- i++;
- }
- }
- if(num == true)return false;
- return true;
- }
- public static void main(String[] args) throws IOException {
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
- int q = Integer.parseInt(in.readLine().trim());
- //calc();
- while(q-- > 0){
- StringBuilder ex = new StringBuilder(in.readLine().trim());
- if(check(ex))out.write("VALID");
- else out.write("INVALID");
- out.write('\n');
- }
- out.flush();
- out.close();
- in.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement