import java.io.*; import java.util.*; public class slides { static int[][] feld; static int l; static int[] sx1,sx2,sy1,sy2,nox,noy; static int heap=0; public static void main(String[] argv) { try{ String[] slds,nmbrs; int maxx,maxy,miny,minx; Vector paare; ReadFile rf=new ReadFile("slides.in"); while (rf.hasMoreBlocks()) { heap++; slds=rf.getNextBlock(); nmbrs=rf.getNextBlock(slds.length); sx1=new int[slds.length]; sx2=new int[slds.length]; sy1=new int[slds.length]; sy2=new int[slds.length]; nox=new int[slds.length]; noy=new int[slds.length]; l=slds.length; minx=100000;maxx=-100000; miny=100000;maxy=-100000; paare=new Vector(); for (int i=0;imaxx) maxx=sx2[i]; if (sy1[i]maxy) maxy=sy2[i]; } for (int i=0;i-1) try { if (feld[nox[i]][noy[i]]==1) break; } catch (Exception e){} } char c; raushier:for (int x=0;x=sx1[x])&& (noy[i]<=sy2[x])&&(noy[i]>=sy1[x])) { paare.addElement(new AusgabePaar((char)((int)'A'+x),i+1)); addToFeld(-1,sx1[x],sx2[x],sy1[x],sy2[x]); sx1[x]=sx2[x]=sy1[x]=sy2[x]=-1; } } nox[i]=noy[i]=-1; } boolean space=false; if (heap>1) System.out.println(""); System.out.println("Heap "+heap); if (paare.size()==0) System.out.print("none"); else { for (char c='A';c<='Z';c++) for (int j=0;j-1) try { if (feld[nox[i]][noy[i]]==1) return true; } catch (Exception e){} } return false; } static void addToFeld(int i,int x1,int x2,int y1,int y2) { for (int x=x1;x<=x2;x++) for (int y=y1;y<=y2;y++) try { feld[x][y]+=i; } catch (Exception e){} } } class AusgabePaar { AusgabePaar(char c,int i) {letter=c;number=i;} char letter; int number; } class ReadFile { Vector inhalt= new Vector(); int lineCounter=0; String endDelemiter; ReadFile(String name) { this(name,"0"); } ReadFile(String name,String endDel) { String s; endDelemiter=endDel; try { FileReader fr= new FileReader(name); BufferedReader br= new BufferedReader(fr); while ((s=br.readLine())!=null) inhalt.addElement(s); }catch(Exception e){} } Vector getInhalt() { return inhalt; } boolean hasMoreLines() { return (lineCounter