#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include using namespace std; long long dp[1<<12+1]; template T gcd( T m, T n ) { // 引数に0がある場合は0を返す if ( ( 0 == m ) || ( 0 == n ) ) return 0; // ユークリッドの方法 while( m != n ) { if ( m > n ) m = m - n; else n = n - m; } return m; } template T* hoge( T m, T n ) { T* ans = new T[3]; T d[2]={m,n}; T x[2]={1,0}; T y[2]={0,1}; while(d[1]!=0){ T q = d[0]/d[1]; T tmp =d[0]; d[0]=d[1]; d[1]=tmp%d[1]; tmp = x[0]; x[0]=x[1]; x[1]=tmp-q*x[1]; tmp = y[0]; y[0]=y[1]; y[1]=tmp-q*y[1]; ans[0]=x[0]; ans[1]=y[0]; ans[2]=d[0]; } return ans; } template T value(T a,T b,T c,T t,T u,T v){ return abs(b*t+u*c) + abs(-a*t+v*c); } int main(){ string fuck="mourennaihasimasenn"; long long x,y,z; cin >> x >> y >> z; long long xygcd=gcd(x,y); if( z % xygcd!= 0){ cout <value(a,b,c,center2,u,v)){ lmin = center1; }else{ lmax = center2; } } int prefix = (lmin+lmax)/2; int buf = 100000; for (int i = -buf; i < buf; i++) { long long t =prefix+i; if(value(a,b,c,t,u,v)>5010)continue; string output; for (int j = 0; j < abs(b*t+u*c); j++) { output+='c'; } if(b*t+u*c<0){ output+='c'; output+='c'; for (int j = 0; j < abs(b*t+u*c)+1; j++) { output+='W'; } }else{ for (int j = 0; j < abs(b*t+u*c)-1; j++) { output+='C'; } } for (int j = 0; j < abs(-a*t+v*c); j++) { output+='w'; } if(-a*t+v*c<0){ for (int j = 0; j < abs(-a*t+v*c)-1; j++) { output+='W'; } }else{ for (int j = 0; j < abs(-a*t+v*c)-1; j++) { output+='C'; } } output+='C'; if(output.length()<10000){ cout << output<