Submission #1083791

# Submission time Handle Problem Language Result Execution time Memory
1083791 2024-09-04T07:20:52 Z bvd Bitaro the Brave (JOI19_ho_t1) Java 11
0 / 100
47 ms 10592 KB
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.StringTokenizer;

public class joi2019_ho_t1 {
	private static class Kattio extends PrintWriter {
		public Kattio(InputStream i) {
			super(new BufferedOutputStream(System.out));
			r = new BufferedReader(new InputStreamReader(i));
		}

		public Kattio(InputStream i, OutputStream o) {
			super(new BufferedOutputStream(o));
			r = new BufferedReader(new InputStreamReader(i));
		}

		public boolean hasMoreTokens() {
			return peekToken() != null;
		}

		public int getInt() {
			return Integer.parseInt(nextToken());
		}

		public double getDouble() {
			return Double.parseDouble(nextToken());
		}

		public long getLong() {
			return Long.parseLong(nextToken());
		}

		public String getWord() {
			return nextToken();
		}

		private BufferedReader r;
		private String line;
		private StringTokenizer st;
		private String token;

		private String peekToken() {
			if (token == null)
				try {
					while (st == null || !st.hasMoreTokens()) {
						line = r.readLine();
						if (line == null)
							return null;
						st = new StringTokenizer(line);
					}
					token = st.nextToken();
				} catch (IOException e) {
				}
			return token;
		}

		private String nextToken() {
			String ans = peekToken();
			token = null;
			return ans;
		}
	}
	
	public static void main(String[] args) {
		try (Kattio io = new Kattio(System.in, System.out)) {
			int n = io.getInt();
			int m = io.getInt();
			String[] table = new String[m];
			for (int i=0; i<n; ++i) {
				table[i] = io.getWord();
			}
			
			int[] cntRow = new int[m];
			int[] cntCol = new int[n];
			long result = 0;
			for (int i=n-1; i>=0; --i) {
				for (int j=m-1; j>=0; --j) {
					switch (table[i].charAt(j)) {
						case 'O': cntCol[i]++; break;
						case 'I': cntRow[j]++; break;
						default: result += cntRow[j] * cntCol[i];
					}
				}
			}
			
			io.println(result);
		}
	}
}
# Verdict Execution time Memory Grader output
1 Correct 43 ms 10592 KB Output is correct
2 Correct 47 ms 10104 KB Output is correct
3 Correct 46 ms 10316 KB Output is correct
4 Runtime error 45 ms 8756 KB Execution failed because the return code was nonzero
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 43 ms 10592 KB Output is correct
2 Correct 47 ms 10104 KB Output is correct
3 Correct 46 ms 10316 KB Output is correct
4 Runtime error 45 ms 8756 KB Execution failed because the return code was nonzero
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 43 ms 10592 KB Output is correct
2 Correct 47 ms 10104 KB Output is correct
3 Correct 46 ms 10316 KB Output is correct
4 Runtime error 45 ms 8756 KB Execution failed because the return code was nonzero
5 Halted 0 ms 0 KB -