关闭

USACO 1.2.2 Transformations

249人阅读 评论(0) 收藏 举报
/*
 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.
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4626次
    • 积分:144
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档