清风未明的代码集

欢迎访问我的主blog:www.clear-wind.cn

USACO 1.2.2 Transformations
/*
 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代码
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

USACO 1.2.2 Transformations

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭