Walking through the streets of Marshmallow City, Slastyona have spotted some merchants selling a kind of useless toy which is very popular nowadays – caramel spinner! Wanting to join the craze, she has immediately bought the strange contraption.
Spinners in Sweetland have the form of V-shaped pieces of caramel. Each spinner can, well, spin around an invisible magic axis. At a specific point in time, a spinner can take 4 positions shown below (each one rotated 90 degrees relative to the previous, with the fourth one followed by the first one):
After the spinner was spun, it starts its rotation, which is described by a following algorithm: the spinner maintains its position for a second then majestically switches to the next position in clockwise or counter-clockwise order, depending on the direction the spinner was spun in.
Slastyona managed to have spinner rotating for exactly n
Input
There are two characters in the first string – the starting and the ending position of a spinner. The position is encoded with one of the following characters: v (ASCII code 118, lowercase v), < (ASCII code 60), ^ (ASCII code 94) or > (ASCII code 62) (see the picture above for reference). Characters are separated by a single space.
In the second strings, a single number n is given (0 ≤ n ≤ 109) – the duration of the rotation.
It is guaranteed that the ending position of a spinner is a result of a n
Output
Output cw, if the direction is clockwise, ccw – if counter-clockwise, and undefined
Example
Input
^ > 1
Output
cw
Input
< ^ 3
Output
ccw
Input
^ v 6
Output
undefined
题目大概:
旋转图形,直到旋转前后的样子,和旋转的次数(每次旋转90度),问是顺时针,逆时针,其他。
思路:
如果顺时针,可以转变位数字,加上旋转次数,对4除余。
逆时针,转变为数字,也是列出公式(自己推一下),对4除余。
代码:
#include <iostream>
using namespace std;
int f(char a)
{if(a==118)return 1;
else if(a==60)return 2;
else if(a==94)return 3;
else if(a==62)return 4;
return 0;
}
int main()
{char n,m;
long long q1,w1,q2,w2,k;
cin>>n>>m>>k;
q1=q2=f(n);
w1=w2=f(m);
int p=0;
if(k==0){if(q1==w1)p=1;}
else{
q1=(q1+k)%4;
if(q1==0)q1=4;
if(q1==w1)p=1;
}
int o=0;
if(k==0){if(q2==w2)o=1;}
else{
if(k<q2)q2=q2-k;
else{
q2=4-(k-q2)%4;
if(q2==0)q2=4;}
if(q2==w2)o=1;
}
if(p==1&&o==0)cout<<"cw"<<endl;
else if(p==0&&o==1)cout<<"ccw"<<endl;
else cout<<"undefined"<<endl;
return 0;
}