/*
PROG: transform
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <string>
#include <cmath>
using namespace std;
ifstream fin("transform.in");
ofstream fout("transform.out");
int n;
char a[11][11],b[11][11];
void input()
{
fin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
fin>>a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
fin>>b[i][j];
}
bool ok(char p[][11])
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(p[i][j]!=b[i][j])
return false;
return true;
}
bool trans()
{
int c[11][11];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
c[i][j]=a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
a[n-j+1][i]=c[i][j];
return ok(a);
}
bool turn()
{
int c[11][11];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
c[i][j]=a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
a[i][n-j+1]=c[i][j];
return ok(a);
}
int solve()
{
for(int i=1;i<=3;i++)
if(trans()) return i;
trans();
if( turn () ) return 4;
for(int i=1;i<=3;i++)
if(trans()) return 5;
trans();turn();
if( ok(a) ) return 6;
return 7;
}
int main()
{
input();
fout<<solve()<<endl;
return 0;
}
Compiling...
Compile: OK
Executing...
Test 1: TEST OK [0 secs]
Test 2: TEST OK [0 secs]
Test 3: TEST OK [0.004 secs]
Test 4: TEST OK [0 secs]
Test 5: TEST OK [0.004 secs]
Test 6: TEST OK [0.004 secs]
Test 7: TEST OK [0 secs]
Test 8: TEST OK [0 secs]
All tests OK.
YOUR PROGRAM ('transform') WORKED FIRST TIME!
That's fantastic -- and a rare thing.
Please accept these special automated congratulations.
USACO 1.2.2 Transformations
最新推荐文章于 2020-09-21 21:17:59 发布