1. 程式人生 > 實用技巧 >超長程式碼紀念 洛谷單詞方陣

超長程式碼紀念 洛谷單詞方陣

  1 #include<iostream>
  2 #include<cstring>
  3 #include<cstdio>
  4 using namespace std;
  5 string temp="yizhong";
  6 int a;
  7 int ans[105][105];
  8 char map[105][105];
  9 
 10 bool d1(int x,int y)
 11 {
 12     int l=1;
 13     while(1)
 14     {
 15         x++;
 16         if
(x==a) return false; 17 if(map[x][y]!=temp[l]) return false; 18 if(l==6) return true; 19 l++; 20 } 21 } 22 bool d2(int x,int y) 23 { 24 int l=1; 25 while(1) 26 { 27 x++;y++; 28 if(x==a||y==a) return false; 29 if(map[x][y]!=temp[l]) return
false; 30 if(l==6) return true; 31 l++; 32 } 33 } 34 bool d3(int x,int y) 35 { 36 int l=1; 37 while(1) 38 { 39 y++; 40 if(y==a) return false; 41 if(map[x][y]!=temp[l]) return false; 42 if(l==6) return true; 43 l++;
44 } 45 } 46 bool d4(int x,int y) 47 { 48 int l=1; 49 while(1) 50 { 51 x--;y++; 52 if(x<0||y==a) return false; 53 if(map[x][y]!=temp[l]) return false; 54 if(l==6) return true; 55 l++; 56 } 57 } 58 bool d5(int x,int y) 59 { 60 int l=1; 61 while(1) 62 { 63 x--; 64 if(x<0) return false; 65 if(map[x][y]!=temp[l]) return false; 66 if(l==6) return true; 67 l++; 68 } 69 } 70 bool d6(int x,int y) 71 { 72 int l=1; 73 while(1) 74 { 75 x--;y--; 76 if(x<0||y<0) return false; 77 if(map[x][y]!=temp[l]) return false; 78 if(l==6) return true; 79 l++; 80 } 81 } 82 bool d7(int x,int y) 83 { 84 int l=1; 85 while(1) 86 { 87 y--; 88 if(y<0) return false; 89 if(map[x][y]!=temp[l]) return false; 90 if(l==6) return true; 91 l++; 92 } 93 } 94 bool d8(int x,int y) 95 { 96 int l=1; 97 while(1) 98 { 99 x++;y--; 100 if(x==a||y<0) return false; 101 if(map[x][y]!=temp[l]) return false; 102 if(l==6) return true; 103 l++; 104 } 105 } 106 int main() 107 { 108 cin>>a; 109 for(int i=0;i<a;i++) 110 for(int j=0;j<a;j++) 111 cin>>map[i][j]; 112 for(int i=0;i<a;i++) 113 for(int j=0;j<a;j++) 114 { 115 if(d1(i,j)) 116 { 117 ans[i][j]=1; 118 ans[i+1][j]=1; 119 ans[i+2][j]=1; 120 ans[i+3][j]=1; 121 ans[i+4][j]=1; 122 ans[i+5][j]=1; 123 ans[i+6][j]=1; 124 } 125 if(d2(i,j)) 126 { 127 ans[i][j]=1; 128 ans[i+1][j+1]=1; 129 ans[i+2][j+2]=1; 130 ans[i+3][j+3]=1; 131 ans[i+4][j+4]=1; 132 ans[i+5][j+5]=1; 133 ans[i+6][j+6]=1; 134 } 135 if(d3(i,j)) 136 { 137 ans[i][j]=1; 138 ans[i][j+1]=1; 139 ans[i][j+2]=1; 140 ans[i][j+3]=1; 141 ans[i][j+4]=1; 142 ans[i][j+5]=1; 143 ans[i][j+6]=1; 144 } 145 if(d4(i,j)) 146 { 147 ans[i][j]=1; 148 ans[i-1][j+1]=1; 149 ans[i-2][j+2]=1; 150 ans[i-3][j+3]=1; 151 ans[i-4][j+4]=1; 152 ans[i-5][j+5]=1; 153 ans[i-6][j+6]=1; 154 } 155 if(d5(i,j)) 156 { 157 ans[i][j]=1; 158 ans[i-1][j]=1; 159 ans[i-2][j]=1; 160 ans[i-3][j]=1; 161 ans[i-4][j]=1; 162 ans[i-5][j]=1; 163 ans[i-6][j]=1; 164 } 165 if(d6(i,j)) 166 { 167 ans[i][j]=1; 168 ans[i-1][j-1]=1; 169 ans[i-2][j-2]=1; 170 ans[i-3][j-3]=1; 171 ans[i-4][j-4]=1; 172 ans[i-5][j-5]=1; 173 ans[i-6][j-6]=1; 174 } 175 if(d7(i,j)) 176 { 177 ans[i][j]=1; 178 ans[i][j-1]=1; 179 ans[i][j-2]=1; 180 ans[i][j-3]=1; 181 ans[i][j-4]=1; 182 ans[i][j-5]=1; 183 ans[i][j-6]=1; 184 } 185 if(d8(i,j)) 186 { 187 ans[i][j]=1; 188 ans[i+1][j-1]=1; 189 ans[i+2][j-2]=1; 190 ans[i+3][j-3]=1; 191 ans[i+4][j-4]=1; 192 ans[i+5][j-5]=1; 193 ans[i+6][j-6]=1; 194 } 195 } 196 for(int i=0;i<a;i++) 197 { 198 for(int j=0;j<a;j++) 199 { 200 if(ans[i][j]) 201 { 202 cout<<map[i][j]; 203 continue; 204 } 205 cout<<"*"; 206 } 207 cout<<endl; 208 } 209 return 0; 210 }
long long