Algo lab/slot

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

Explicit rotation

#include <iostream>

using namespace std;

const int N = 4;

int table[N][N];

void read_input()
{
  for(int r = 0; r < N; r++)
    for(int c = 0; c < N; c++)
      cin >> table[r][c];
}

void rotate(int c, int a)
{
}

int compute_score()
{
  return 0;
}

int main()
{
  read_input();
  int mx = 0;
  
  for(int a1 = 0; a1 < 4; a1++)
    for(int a2 = 0; a2 < 4; a2++)
      for(int a3 = 0; a3 < 4; a3++) {
        rotate(1,a1);
        rotate(2,a2);
        rotate(3,a3);

        int sc = compute_score();
        if(sc > mx)
          mx = sc;

        rotate(1,4 - a1);
        rotate(2,4 - a2);
        rotate(3,4 - a3);
      } 
}

Implicit rotation

#include <iostream>

using namespace std;

const int N = 4;

int table[N][N];

void read_input()
{
  for(int r = 0; r < N; r++)
    for(int c = 0; c < N; c++)
      cin >> table[r][c];
}

int compute_score(int a0, int a1, int a2, int a3)
{
  return 0;
}

int main()
{
  read_input();
  int mx = 0;
  
  for(int a1 = 0; a1 < 4; a1++)
    for(int a2 = 0; a2 < 4; a2++)
      for(int a3 = 0; a3 < 4; a3++) {
        int sc = compute_score(0,a1,a2,a3);
        if(sc > mx)
          mx = sc;
      } 
}