結果
問題 | No.438 Cwwプログラミング入門 |
ユーザー |
![]() |
提出日時 | 2016-10-28 23:40:41 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,894 bytes |
コンパイル時間 | 785 ms |
コンパイル使用メモリ | 96,544 KB |
実行使用メモリ | 821,180 KB |
最終ジャッジ日時 | 2024-11-24 20:30:43 |
合計ジャッジ時間 | 54,611 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 48 WA * 27 RE * 8 TLE * 14 MLE * 1 |
ソースコード
#include <cstdio> #include <cstring> #include <string> #include <cmath> #include <cassert> #include <iostream> #include <algorithm> #include <stack> #include <queue> #include <vector> #include <set> #include <map> #include <bitset> #include <functional> using namespace std; #define repl(i,a,b) for(int i=(int)(a);i<(int)(b);i++) #define rep(i,n) repl(i,0,n) #define mp(a,b) make_pair((a),(b)) #define pb(a) push_back(a) #define all(x) (x).begin(),(x).end() #define dbg(x) cout<<#x"="<<(x)<<endl #define fi first #define se second #define INF 2147483600 const string muri = "mourennaihasimasenn"; // a*x + b*y = gcd(a, b) int extgcd(int a, int b, int& x, int& y){ int d=a; if(b!=0){ d=extgcd(b, a%b, y, x); y-=(a/b)*x; } else { x=1; y=0; } return d; } int main(){ int x,y,z; cin>>x>>y>>z; int a,b; int g = extgcd(x, y, a, b); // ax + by = g if(z%g!=0){ cout<<muri<<endl; return 0; } string push="", pop=""; bool flg=false; string xx="c", yy="w"; if(x<y){ swap(x,y); swap(xx,yy); } if(z > x){ rep(i, z/x){ push += xx; pop += "C"; } z = z%x; flg=true; } if(z > y){ rep(i, z/y){ push += yy; pop += "C"; } z = z%b; flg=true; } if(z==0){ cout<<push<<pop.substr(1)<<endl; return 0; } string res; if(flg) res = push + pop.substr(1); push="";pop=""; if(a<0){ rep(i,-a) push += "c"; rep(i,-a) pop = "W" + pop; } if(b<0){ rep(i,-b) push += "w"; rep(i,-b) pop = "W" + pop; } if(a>0){ rep(i,a) push += "c"; rep(i,a) pop = "C"+pop; } if(b>0){ rep(i,b) push += "w"; rep(i,b) pop = "C"+pop; } pop = pop.substr(1); rep(i,z/g){ res += push + pop; if(i!=0) res += "C"; } if(flg) res += "C"; if(res.size()>10000) cout<<muri<<endl; else cout<<res<<endl; // 0入力のチェック! return 0; }