#include <bits/stdc++.h>
using namespace std;
int t[3]={3,2,6};
void setDice(const char d){
int u,f,r;
switch(d){
case 'R':
u=7-t[2];
f=t[1];
r=t[0];
break;
case 'D':
u=7-t[1];
f=t[0];
r=t[2];
break;
case 'U':
u=t[1];
f=7-t[0];
r=t[2];
break;
}
t[0]=u;
t[1]=f;
t[2]=r;
return;
}
int main(){
int r,c,sum=0;
bool flag= true;
cin>>r>>c;
for(int i=1;i<=c;i++){
if(flag){
for(int j=1;j<r;j++){
sum+=t[0];
setDice('D');
}
}else{
for(int j=r;j>1;j--){
sum+=t[0];
setDice('U');
}
}
sum+=t[0];
setDice('R');
flag=!flag;
}
cout<<sum;
return 0;
}
题目描述:骰子游戏是一种益智游戏。骰子游戏的地图是一个R*C的网格图。一开始骰子的状态为上面为3正面为2右面为6, 位置位于左上角。然后我们需要滚动骰子轨迹为:自第一行最左端开始,到最下端之后,向右滚动一格,从倒数第二列最下端滚动到 最上端,再向右滚动,如此反复直到倒数第二列,求此过程中每到达一格,骰子的上方点数之和。 输入描述:两个整数R,C。 输出描述:骰子的上方点数之和。
样例输入: 3 3 样例输出: 24