http://www.luogu.org/problem/show?pid=1328
直接模拟,弄一个邻接矩阵
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#define ms(i,j) memset(i,j, sizeof i);
using namespace std;
int G[10][10] = {
{ 0,-1, 1, 1,-1},
{ 1, 0,-1, 1,-1},
{-1, 1, 0,-1, 1},
{-1,-1, 1, 0, 1},
{ 1, 1,-1,-1, 0}
};
int main()
{
int n,na,nb;
int A[205], B[205];
scanf("%d%d%d", &n ,&na, &nb);
for (int i=0;i<na;i++) scanf("%d", &A[i]);
for (int i=0;i<nb;i++) scanf("%d", &B[i]);
int ansa=0,ansb=0;
for (int i=0;i<n;i++)
{
if (G[A[i%na]][B[i%nb]]>=0)
{
ansa += G[A[i%na]][B[i%nb]];
} else ansb += -G[A[i%na]][B[i%nb]];
}
printf("%d %d\n", ansa, ansb);
return 0;
}