论 OI 之绝望 · 过长篇
查看原帖
论 OI 之绝望 · 过长篇
519187
Nodlek楼主2021/9/20 22:17

提交失败\texttt{\colorbox{red}{\color{white}提交失败}}

代码过长\texttt{\colorbox{black}{\color{black}代码过长}}

hhhhhhhhh....wuwuwuwuwuwuwu

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Random;

public class Main {
	static InputStream is;
	static PrintWriter out;
	static String INPUT = "";
	
	static long[][][] BURIED;
	static int REP = 50;
	
	static void solve() throws Exception
	{
		Random gen = new Random(1);
		
		int T = ni();
		double ROT;
		double SKEW;
		if(T < 30){
			ROT = 2;
			SKEW = 0;
			REP = 70;
		}else if(T < 90){
			ROT = 10;
			SKEW = 0.1;
			REP = 70;
		}else{
			ROT = 15;
			SKEW = 0.1;
			REP = 70;
		}
		BURIED = new long[16][REP][65];
		for(int i = 0;i < 16;i++){
			
			long[] BASE = new long[65];
			for(int j = 0;j < BURY[i].length;j++){
				for(int k = 0;k < BURY[i][j].length();k++){
					if(BURY[i][j].charAt(k) == '#'){
						BASE[j] |= 1L<<k;
					}
				}
			}
			
			for(int rep = 0;rep < REP;rep++){
				long[] TO = new long[65];
//				double scale = gen.nextDouble()*0.2+0.8;
//				double wscale = (gen.nextDouble()*0.1+0.9)*scale;
//				double hscale = (gen.nextDouble()*0.1+0.9)*scale;
				double scale = gen.nextDouble()*0.1+0.9;
				double wscale = (gen.nextDouble()*0.1+0.9)*scale;
				double hscale = (gen.nextDouble()*0.1+0.9)*scale;
//				double slidex = gen.nextDouble()*10-5;
				double rot = (gen.nextDouble()*ROT*2-ROT)/180*Math.PI;
				double skewx = gen.nextDouble()*SKEW*2-SKEW;
				double skewy = gen.nextDouble()*SKEW*2-SKEW;
				double crot = Math.cos(rot);
				double srot = Math.sin(rot);
				for(int j = 0;j < 65;j++){
					for(int k = 0;k < 38;k++){
						if(BASE[j]<<63-k<0){
							double y = j+0.5-32.5, x = k+0.5-19;
							x *= wscale; y *= hscale;
							double nx = x * crot - y * srot;
							double ny = x * srot + y * crot;
							x = nx; y = ny;
							nx = x + skewy * y;
							ny = y + skewx * x;
							x = nx; y = ny;
							int nj = (int)Math.round(y+32.5-0.5);
							int nk = (int)Math.round(x+19-0.5);
							if(nk >= 0 && nk < 38 && nj >= 0 && nj < 65){
								TO[nj] |= 1L<<nk;
							}
						}
					}
				}
				reduceNoise(TO);
				balanceW(TO);
				balanceH(TO);
				BURIED[i][rep] = TO;
			}
		}
		
		int m = ni(), n = ni();
		char[][] map = nm(n, m);
		reduceNoise(map);
//		for(char[] x : map){
//			tr(new String(x));
//		}
		
		int[] f = new int[m];
		for(int i = 0;i < m;i++){
			for(int j = 0;j < n;j++){
				f[i] += map[j][i] == '#' ? 1 : 0;
			}
		}
		
		int[][] inters = new int[m][];
		int p = 0;
		for(int i = 0;i < m;i++){
			if(f[i] <= 1){
				int j;
				for(j = i+1;j < m && f[j] <= 1;j++);
				if(i > 0 && j < m){
					inters[p++] = new int[]{i, j};
				}
				i = j-1;
			}
		}
		
		StringBuilder sb = new StringBuilder();
		if(p == 0){
			sb.append(recognize(0, m, map));
		}else{
			char x = recognize(0, inters[0][0]+inters[0][1]>>>1, map);
			if(x != 0)sb.append(x);
			for(int i = 0;i < p-1;i++){
				x = recognize(inters[i][0]+inters[i][1]>>>1, inters[i+1][0]+inters[i+1][1]>>>1, map);
				if(x != 0)sb.append(x);
			}
			x = recognize(inters[p-1][0]+inters[p-1][1]>>>1, m, map);
			if(x != 0)sb.append(x);
		}
//		tr(new String(str));
		out.println(new Parser4().eval(sb.toString().toCharArray()));
	}
	
	static char[] D = "0123456789()+-*/".toCharArray();
	
	static void balanceW(long[] map)
	{
		int sumf = 0;
		int g = 0;
		for(long x : map){
			for(int i = 0;i < 38;i++){
				if(x<<63-i<0){
					g += i;
					sumf++;
				}
			}
		}
		int center = (2*g+sumf)/(2*sumf);
		for(int i = 0;i < 65;i++){
			if(center < 19){
				map[i]<<=19-center;
			}else{
				map[i]>>>=center-19;
			}
		}
	}
	
	static void balanceH(long[] map)
	{
		int sumf = 0;
		int g = 0;
		for(int i = 0;i < 65;i++){
			int f = Long.bitCount(map[i]);
			g += i*f;
			sumf += f;
		}
		int center = (2*g+sumf)/(2*sumf);
		if(center < 32){
			for(int i = 65-1-(32-center);i >= 0;i--){
				map[i+32-center] = map[i];
			}
			for(int i = 32-center-1;i >= 0;i--)map[i] = 0;
		}else{
			for(int i = center-32;i < 65;i++){
				map[i-(center-32)] = map[i];
			}
			for(int i = 65-(center-32);i < 65;i++)map[i] = 0;
		}
	}
	
	static char recognize(int l, int r, char[][] map)
	{
		if(r-l < 10)return 0;
		long[] expanded = new long[65];
		int offset = (r-l-38)/2+l;
		for(int i = 0;i < 65;i++){
			for(int j = 0;j < 38;j++){
				if(j+offset >= l && j+offset < r && map[i][j+offset] == '#'){
					expanded[i] |= 1L<<j;
				}
			}
		}
//		for(int i = 0;i < 65;i++){
//			for(int j = 0;j < 38;j++){
//				double x = (j+0.5)/38.*(r-l)-0.5;
//				double vote = 0;
//				int fx = (int)Math.floor(x);
//				double ww = 0;
//				for(int k = fx;k <= fx+1;k++){
//					double lw = 1-(x-k)*(x-k);
//					ww += lw;
//					if(l+k >= 0 && l+k < map[0].length){
//						if(map[i][l+k] == '#')vote += lw;
//					}
//				}
//				if(vote >= ww/2){
//					expanded[i] |= 1L<<j;
//				}
//			}
//		}
		balanceW(expanded);
		balanceH(expanded);
		
		int maxi = -1;
		int maxmat = -1;
		for(int i = 0;i < 16;i++){
			for(int u = 0;u < REP;u++){
				int mat = 0;
				for(int j = 0;j < 65;j++){
					mat += 38-Long.bitCount(expanded[j]^BURIED[i][u][j]);
				}
//				if(i == 0){
//					for(long x : BURIED[i][u]){
//						tr(Long.toBinaryString(x|1L<<38).substring(1));
//					}
//				}
				if(mat > maxmat){
					maxmat = mat;
					maxi = i;
				}
			}
		}
//		tr(l, r, D[maxi], maxmat, (double)maxmat/38/65);
//		if((double)maxmat/38/65 < 0.9){
//			for(long x : expanded){
//				tr(Long.toBinaryString(x|1L<<38).substring(1));
//			}
////			for(long x : BURIED[8][0]){
////				tr(Long.toBinaryString(x|1L<<38).substring(1));
////			}
//		}
//		System.exit(1);
		return D[maxi];
	}
	
	static void reduceNoise(char[][] map)
	{
		int n = map.length, m = map[0].length;
//		int[] S = {0, 100, 71, 58, 50, 45, 41, 38, 35};
//		int[] S = {0, 100, 50, 33, 25, 20, 17, 14, 13};
		for(int i = 0;i < n;i++){
			for(int j = 0;j < m;j++){
				int b = 0, w = 0;
				for(int k = -2;k <= 2;k++){
					for(int l = -2;l <= 2;l++){
//						if(k == 0 && l == 0)continue;
						if(i+k >= 0 && i+k < n && j+l >= 0 && j+l < m){
							if(map[i+k][l+j] == '#'){
								b+=100/(k*k+l*l+1);
							}else{
								w+=100/(k*k+l*l+1);
//								w+=S[k*k+l*l];
							}
						}
					}
				}
				// roughly
				if(map[i][j] == '#' && w > b){
					map[i][j] = '.';
				}else if(map[i][j] == '.' && b > w){
					map[i][j] = '#';
				}
//				if(map[i][j] == '#' && w >= 8*b){
//					map[i][j] = '.';
//				}else if(map[i][j] == '.' && b >= 3*w){
//					map[i][j] = '#';
//				}
			}
		}
	}
	
	static void reduceNoise(long[] map)
	{
//		int[] S = {0, 100, 50, 33, 25, 20, 17, 14, 13};
//		int[] S = {0, 100, 71, 58, 50, 45, 41, 38, 35};
		for(int i = 0;i < 65;i++){
			for(int j = 0;j < 38;j++){
				int b = 0, w = 0;
				for(int k = -2;k <= 2;k++){
					for(int l = -2;l <= 2;l++){
						if(k == 0 && l == 0)continue;
						if(i+k >= 0 && i+k < 65 && j+l >= 0 && j+l < 38){
							if(map[i+k]<<63-(l+j)<0){
								b+=100/(k*k+l*l+1);
							}else{
								w+=100/(k*k+l*l+1);
							}
						}
					}
				}
				// roughly
				if(map[i]<<63-j<0 && w > b){
					map[i] ^= 1L<<j;
				}else if(map[i]<<63-j>=0 && b > w){
					map[i] ^= 1L<<j;
				}
			}
		}
	}
	
	public static class Parser4 {
		// exp = exp2 ([+-] exp2)*
		// exp2 = exp3 ([*/] exp3)*
		// exp3 = exp4 | '(' exp ')'
		// exp4 = -*digit+{[\.]digit+}
		// digit = [0-9]
		char[] str;
		int pos;
		int n;
		
		public int eval(char[] str) throws Exception
		{
			this.str = str;
			pos = 0;
			n = this.str.length;
			int ret = exp();
			if(pos < n)throw new AssertionError(-1);
			return ret;
		}
		
		public int exp() throws Exception
		{
			int v = exp2();
			while(pos < n && (str[pos] == '+' || str[pos] == '-')){
				char op = str[pos];
				pos++;
				if(pos >= n)throw new AssertionError(pos);
				int w = exp2();
				if(op == '+'){
					v += w;
				}else{
					v -= w;
				}
			}
			return v;
		}
		
		public int exp2() throws Exception
		{
			int v = exp3();
			while(pos < n && (str[pos] == '*' || str[pos] == '/')){
				char op = str[pos];
				pos++;
				if(pos >= n)throw new AssertionError(pos);
				int w = exp3();
				if(op == '*'){
					v *= w;
				}else{
					if(w == 0)throw new AssertionError(pos);
					v /= w;
				}
			}
			return v;
		}
		
		public int exp3() throws Exception
		{
			if(pos < n && str[pos] == '('){
				pos++;
				int v = exp();
				if(!(pos < n && str[pos] == ')'))throw new AssertionError(pos);
				pos++;
				return v;
			}else{
				return exp4();
			}
		}
		
		public int exp4() throws Exception
		{
			boolean minus = false;
			while(pos < n && str[pos] == '-'){
				minus = !minus;
				pos++;
			}
			boolean present = false;
			int v = 0;
			while(pos < n && str[pos] >= '0' && str[pos] <= '9'){
				v = v * 10 + digit();
				present = true;
			}
			if(!present)throw new AssertionError(pos);
			if(minus)v = -v;
			return v;
		}
		
		public int digit() throws Exception
		{
			if(pos == n)throw new AssertionError(pos);
			return str[pos++] - '0';
		}
	}
	
	public static void main(String[] args) throws Exception
	{
		long S = System.currentTimeMillis();
		is = INPUT.isEmpty() ? System.in : new ByteArrayInputStream(INPUT.getBytes());
		out = new PrintWriter(System.out);
		
		solve();
		out.flush();
		long G = System.currentTimeMillis();
		tr(G-S+"ms");
	}
	
	private static boolean eof()
	{
		if(lenbuf == -1)return true;
		int lptr = ptrbuf;
		while(lptr < lenbuf)if(!isSpaceChar(inbuf[lptr++]))return false;
		
		try {
			is.mark(1000);
			while(true){
				int b = is.read();
				if(b == -1){
					is.reset();
					return true;
				}else if(!isSpaceChar(b)){
					is.reset();
					return false;
				}
			}
		} catch (IOException e) {
			return true;
		}
	}
	
	private static byte[] inbuf = new byte[1024];
	static int lenbuf = 0, ptrbuf = 0;
	
	private static int readByte()
	{
		if(lenbuf == -1)throw new InputMismatchException();
		if(ptrbuf >= lenbuf){
			ptrbuf = 0;
			try { lenbuf = is.read(inbuf); } catch (IOException e) { throw new InputMismatchException(); }
			if(lenbuf <= 0)return -1;
		}
		return inbuf[ptrbuf++];
	}
	
	private static boolean isSpaceChar(int c) { return !(c >= 33 && c <= 126); }
//	private static boolean isSpaceChar(int c) { return !(c >= 32 && c <= 126); }
	private static int skip() { int b; while((b = readByte()) != -1 && isSpaceChar(b)); return b; }
	
	private static double nd() { return Double.parseDouble(ns()); }
	private static char nc() { return (char)skip(); }
	
	private static String ns()
	{
		int b = skip();
		StringBuilder sb = new StringBuilder();
		while(!(isSpaceChar(b))){
			sb.appendCodePoint(b);
			b = readByte();
		}
		return sb.toString();
	}
	
	private static char[] ns(int n)
	{
		char[] buf = new char[n];
		int b = skip(), p = 0;
		while(p < n && !(isSpaceChar(b))){
			buf[p++] = (char)b;
			b = readByte();
		}
		return n == p ? buf : Arrays.copyOf(buf, p);
	}
	
	private static char[][] nm(int n, int m)
	{
		char[][] map = new char[n][];
		for(int i = 0;i < n;i++)map[i] = ns(m);
		return map;
	}
	
	private static int[] na(int n)
	{
		int[] a = new int[n];
		for(int i = 0;i < n;i++)a[i] = ni();
		return a;
	}
	
	private static int ni()
	{
		int num = 0, b;
		boolean minus = false;
		while((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-'));
		if(b == '-'){
			minus = true;
			b = readByte();
		}
		
		while(true){
			if(b >= '0' && b <= '9'){
				num = num * 10 + (b - '0');
			}else{
				return minus ? -num : num;
			}
			b = readByte();
		}
	}
	
	private static long nl()
	{
		long num = 0;
		int b;
		boolean minus = false;
		while((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-'));
		if(b == '-'){
			minus = true;
			b = readByte();
		}
		
		while(true){
			if(b >= '0' && b <= '9'){
				num = num * 10 + (b - '0');
			}else{
				return minus ? -num : num;
			}
			b = readByte();
		}
	}
	
	static String[][] BURY = {
		{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"...............########...............",
			".............############.............",
			"...........################...........",
			"..........##################..........",
			".........####################.........",
			"........######################........",
			".......########################.......",
			".......##########....##########.......",
			"......#########........#########......",
			"......########..........########......",
			".....#########..........#########.....",
			".....########............########.....",
			".....########............########.....",
			".....########............########.....",
			"....########..............########....",
			"....########..............########....",
			"....########..............########....",
			"....########..............########....",
			"....########..............########....",
			"....########..............########....",
			"....########..............########....",
			"....########..............########....",
			"....########..............########....",
			"....########..............########....",
			"....########..............########....",
			".....########............########.....",
			".....########............########.....",
			".....########............########.....",
			".....#########..........#########.....",
			"......########..........########......",
			"......#########........#########......",
			".......##########....##########.......",
			".......########################.......",
			"........######################........",
			".........####################.........",
			"..........##################..........",
			"...........################...........",
			".............############.............",
			"...............########...............",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"...................####...............",
			".................#######..............",
			"..............##########..............",
			"...........#############..............",
			"........################..............",
			".......#################..............",
			".......#################..............",
			".......#################..............",
			".......#################..............",
			"........######..########..............",
			"........###.....########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			"................########..............",
			".......##########################.....",
			"......###########################.....",
			"......###########################.....",
			"......###########################.....",
			"......###########################.....",
			".......##########################.....",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"..............#########...............",
			"...........##############.............",
			"........###################...........",
			".......#####################..........",
			"......#######################.........",
			"......#######################.........",
			"......########################........",
			"......#########......#########........",
			"......#######.........#########.......",
			"......#######..........########.......",
			"......#######..........########.......",
			"......#######..........########.......",
			"......#######..........########.......",
			".......######..........########.......",
			"......................#########.......",
			"......................########........",
			".....................#########........",
			"....................##########........",
			"...................##########.........",
			"..................###########.........",
			".................###########..........",
			"................###########...........",
			"...............###########............",
			"..............###########.............",
			".............###########..............",
			"............###########...............",
			"...........###########.....#####......",
			"..........###########.....#######.....",
			".........###########......#######.....",
			"........###########.......#######.....",
			".......###########........#######.....",
			"......###########.........#######.....",
			".....############################.....",
			".....############################.....",
			".....############################.....",
			".....############################.....",
			".....############################.....",
			"......###########################.....",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"..............##########..............",
			"..........################............",
			"........####################..........",
			".......######################.........",
			".......#######################........",
			".......########################.......",
			".......########################.......",
			".......########.......##########......",
			".......#######.........#########......",
			".......#######..........########......",
			".......#######..........########......",
			"........######..........########......",
			"........................########......",
			"........................########......",
			".......................########.......",
			"......................#########.......",
			"...............###############........",
			"..............###############.........",
			"..............##############..........",
			"..............###############.........",
			"..............################........",
			"...............################.......",
			"......................##########......",
			"........................########......",
			"........................#########.....",
			".........................########.....",
			".........................########.....",
			".........................########.....",
			".........................########.....",
			"........................#########.....",
			".......###.............##########.....",
			"......########........##########......",
			"......##########################......",
			"......#########################.......",
			".....##########################.......",
			"......########################........",
			"......######################..........",
			".........#################............",
			"............###########...............",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			".....................#####............",
			"....................#######...........",
			"...................########...........",
			"..................#########...........",
			".................##########...........",
			"................###########...........",
			"................###########...........",
			"...............############...........",
			"..............#############...........",
			".............##############...........",
			"............###############...........",
			"...........################...........",
			"...........########.#######...........",
			"..........########..#######...........",
			".........########...#######...........",
			"........########....#######...........",
			".......#########....#######...........",
			".......########.....#######...........",
			"......########......#######...........",
			".....########.......#######...........",
			"....##############################....",
			"....##############################....",
			"....##############################....",
			"....##############################....",
			"....##############################....",
			"....##############################....",
			"...................########...........",
			"...................########...........",
			"...................########...........",
			"...................########...........",
			"...................########...........",
			"...................########...........",
			".............####################.....",
			"............#####################.....",
			"............#####################.....",
			"............#####################.....",
			"............#####################.....",
			".............####################.....",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"........######################........",
			"........#######################.......",
			"........#######################.......",
			"........#######################.......",
			"........#######################.......",
			"........######################........",
			"........#######.......................",
			"........#######.......................",
			"........#######.......................",
			"........#######.......................",
			"........#######.......................",
			"........#######.......................",
			".......########..########.............",
			".......####################...........",
			".......######################.........",
			".......#######################........",
			".......########################.......",
			".......########################.......",
			".......#########################......",
			".......########.......##########......",
			"..........##...........#########......",
			"........................#########.....",
			".........................########.....",
			".........................########.....",
			".........................########.....",
			".........................########.....",
			".........................########.....",
			".........................########.....",
			"........#...............#########.....",
			".......####............#########......",
			"......########.......###########......",
			"......##########################......",
			"......#########################.......",
			".....#########################........",
			"......#######################.........",
			".......#####################..........",
			".........#################............",
			".............##########...............",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			".........................######.......",
			"....................###########.......",
			".................###############......",
			"...............#################......",
			".............###################......",
			"............####################......",
			"...........####################.......",
			"..........################............",
			".........############.................",
			"........###########...................",
			"........#########.....................",
			".......#########......................",
			".......########.......................",
			"......########........................",
			"......########........................",
			"......#######....########.............",
			"......#######..#############..........",
			".....#########################........",
			".....##########################.......",
			".....###########################......",
			".....###########################......",
			".....############......##########.....",
			".....##########.........#########.....",
			".....#########...........#########....",
			".....########.............########....",
			".....########.............########....",
			".....########.............########....",
			"......#######.............########....",
			"......#######.............########....",
			"......########...........#########....",
			"......#########.........#########.....",
			".......##########.....###########.....",
			"........#########################.....",
			"........########################......",
			".........######################.......",
			"..........####################........",
			"...........##################.........",
			".............##############...........",
			"................########..............",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......###########################.....",
			"......############################....",
			"......############################....",
			"......############################....",
			"......############################....",
			"......###########################.....",
			"......#######...........#########.....",
			"......#######...........#########.....",
			"......#######..........#########......",
			"......#######..........#########......",
			"......#######..........########.......",
			"......#######.........#########.......",
			"......#######.........########........",
			"......#######........#########........",
			".......#####.........#########........",
			".....................########.........",
			"....................#########.........",
			"....................########..........",
			"...................#########..........",
			"...................########...........",
			"..................#########...........",
			"..................#########...........",
			"..................########............",
			".................#########............",
			".................########.............",
			"................#########.............",
			"................########..............",
			"................########..............",
			"...............########...............",
			"...............########...............",
			"..............#########...............",
			"..............########................",
			"..............########................",
			".............########.................",
			".............########.................",
			".............#######..................",
			".............#######..................",
			"...............#####..................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"...............#########..............",
			".............#############............",
			"...........#################..........",
			"..........###################.........",
			".........#####################........",
			"........#######################.......",
			"........#######################.......",
			"........#########.....#########.......",
			".......#########.......#########......",
			".......########.........########......",
			".......########.........########......",
			".......########.........########......",
			".......########.........########......",
			".......########.........########......",
			"........########.......########.......",
			"........#########.....#########.......",
			".........#####################........",
			"..........###################.........",
			"...........#################..........",
			"...........#################..........",
			".........#####################........",
			"........#######################.......",
			".......#########......##########......",
			"......########..........########......",
			"......########..........#########.....",
			".....########............########.....",
			".....########............########.....",
			".....########............########.....",
			".....########............########.....",
			".....#########..........#########.....",
			".....#########..........#########.....",
			"......##########......##########......",
			"......##########################......",
			".......########################.......",
			".......########################.......",
			"........######################........",
			".........####################.........",
			"...........################...........",
			"..............##########..............",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"..............#########...............",
			"............#############.............",
			"..........#################...........",
			".........###################..........",
			"........#####################.........",
			".......#######################........",
			"......########################........",
			"......##########......#########.......",
			"......#########........#########......",
			".....#########..........########......",
			".....########............#######......",
			".....########............#######......",
			".....########............########.....",
			".....########............########.....",
			".....########............########.....",
			".....#########..........#########.....",
			"......########.........##########.....",
			"......##########......###########.....",
			".......##########################.....",
			".......##########################.....",
			"........#########################.....",
			".........########################.....",
			"...........############..########.....",
			".............########....#######......",
			".........................#######......",
			"........................########......",
			"........................########......",
			".......................########.......",
			"......................#########.......",
			"....................##########........",
			"..................############........",
			"..............###############.........",
			".........###################..........",
			"........###################...........",
			"........##################............",
			"........################..............",
			"........##############................",
			"........############..................",
			".........######.......................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			".......................####...........",
			"......................######..........",
			"....................########..........",
			"...................##########.........",
			"..................###########.........",
			".................############.........",
			"................############..........",
			"...............###########............",
			"..............###########.............",
			".............###########..............",
			".............##########...............",
			"............##########................",
			"............#########.................",
			"...........#########..................",
			"...........########...................",
			"..........#########...................",
			"..........########....................",
			".........#########....................",
			".........########.....................",
			".........########.....................",
			".........########.....................",
			"........#########.....................",
			"........########......................",
			"........########......................",
			"........########......................",
			"........########......................",
			"........########......................",
			"........########......................",
			"........########......................",
			"........########......................",
			"........########......................",
			"........########......................",
			".........########.....................",
			".........########.....................",
			".........########.....................",
			".........#########....................",
			"..........########....................",
			"..........#########...................",
			"..........#########...................",
			"...........#########..................",
			"...........##########.................",
			"............#########.................",
			".............#########................",
			".............##########...............",
			"..............###########.............",
			"...............###########............",
			"................###########...........",
			".................############.........",
			"..................###########.........",
			"...................##########.........",
			"....................#########.........",
			".....................#######..........",
			".......................####...........",
			".........................#............",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"...........####.......................",
			"..........######......................",
			".........#########....................",
			".........##########...................",
			".........###########..................",
			".........############.................",
			"..........############................",
			"............###########...............",
			".............###########..............",
			"..............##########..............",
			"...............##########.............",
			"................##########............",
			".................#########............",
			"..................#########...........",
			"...................########...........",
			"...................#########..........",
			"....................########..........",
			"....................#########.........",
			".....................########.........",
			".....................########.........",
			".....................########.........",
			".....................#########........",
			"......................########........",
			"......................########........",
			"......................########........",
			"......................########........",
			"......................########........",
			"......................########........",
			"......................########........",
			"......................########........",
			"......................########........",
			"......................########........",
			".....................########.........",
			".....................########.........",
			".....................########.........",
			"....................#########.........",
			"....................########..........",
			"...................#########..........",
			"...................#########..........",
			"..................#########...........",
			".................##########...........",
			"................##########............",
			"................#########.............",
			"..............###########.............",
			".............###########..............",
			"............###########...............",
			"...........###########................",
			".........############.................",
			".........###########..................",
			".........##########...................",
			".........#########....................",
			"..........#######.....................",
			"...........####.......................",
			"............#.........................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			".................#####................",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"......###########################.....",
			"......###########################.....",
			"......###########################.....",
			"......###########################.....",
			"......###########################.....",
			"......###########################.....",
			"......###########################.....",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			"................#######...............",
			".................#####................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......##########################......",
			".....############################.....",
			".....############################.....",
			".....############################.....",
			".....############################.....",
			".....############################.....",
			"......###########################.....",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			".................####.................",
			"................######................",
			"................#######...............",
			"...............########...............",
			"...............########...............",
			"................#######...............",
			"................######................",
			".......#####....######.....####.......",
			".......######...######...#######......",
			"......#########..#####.#########......",
			"......###############.##########......",
			"......#############.############......",
			"......##########################......",
			".......########################.......",
			"............##############............",
			"...............########...............",
			"..............###########.............",
			".............#############............",
			"...........########.#######...........",
			"..........########..########..........",
			"..........########..#########.........",
			".........########....########.........",
			".........########....########.........",
			"..........#######.....#######.........",
			"...........#####......######..........",
			"............###.........##............",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			},
			{
			"......................................",
			"......................................",
			"......................................",
			"...........................####.......",
			"...........................######.....",
			"..........................#######.....",
			"..........................#######.....",
			".........................########.....",
			".........................#######......",
			"........................########......",
			"........................#######.......",
			".......................########.......",
			".......................#######........",
			"......................########........",
			"......................#######.........",
			".....................########.........",
			".....................########.........",
			".....................#######..........",
			"....................########..........",
			"....................#######...........",
			"...................########...........",
			"...................#######............",
			"..................########............",
			"..................#######.............",
			".................########.............",
			".................#######..............",
			"................########..............",
			"................#######...............",
			"...............########...............",
			"...............#######................",
			"...............#######................",
			"..............########................",
			"..............#######.................",
			".............########.................",
			".............#######..................",
			"............########..................",
			"............#######...................",
			"...........########...................",
			"...........#######....................",
			"..........########....................",
			"..........#######.....................",
			".........########.....................",
			".........#######......................",
			"........########......................",
			"........########......................",
			"........#######.......................",
			".......########.......................",
			".......#######........................",
			"......########........................",
			"......#######.........................",
			".....########.........................",
			".....#######..........................",
			"......######..........................",
			".......#####..........................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................",
			"......................................"
			}
	};
	
	private static void tr(Object... o) { if(INPUT.length() != 0)System.out.println(Arrays.deepToString(o)); }
}
2021/9/20 22:17
加载中...