Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- #define FOR(i,a,b) for(ll i=(a);i<(b);i++)
- #define FORd(i,a,b) for(ll i=(a)-1;i>=(b);i--)
- string a[7][7],f[7][8];
- ll d[7][8], C[4] = {-1,+1,0,0};
- void res() {
- cout << 1;
- }
- void Try(ll x, ll y) {
- FOR(i,0,4)
- if (!(((x==0) && (y==0) && ((i==0) || (i==3))) || ((x==0) && (y==7) && ((i==0) || (i==2))) || ((x==6) && (y==0) && ((i==1) || (i==3))) || ((x==6) && (y==7) && ((i==1) || (i==2)))) && (f[x][y]=="")) {
- f[x][y] = a[d[x][y]][d[x + C[i]][y + C[3 - i]]];
- f[x + C[i]][y + C[3 - i]] = f[x][y];
- if (x == 6 && y == 7) res();
- else if (y == 7) Try(x + 1, 0);
- else Try(x, y + 1);
- f[x][y] = "";
- f[x + C[i]][y + C[3 - i]] = "";
- }
- }
- int main() {
- freopen("test.inp", "r", stdin);
- freopen("test.out", "w", stdout);
- ll t = 6, n = 28;
- FORd(i,7,0) {
- FORd(j,7,t) {
- stringstream ss;
- ss << n--;
- ss >> a[i][j];
- if (a[i][j].size() == 1) a[i][j] = "0" + a[i][j];
- a[j][i] = a[i][j];
- }
- t--;
- }
- FOR(i,0,7)
- FOR(j,0,8) cin >> d[i][j];
- FOR(i,0,7)
- FOR(j,0,8) f[i][j] = "";
- Try(0, 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement