結果

問題 No.438 Cwwプログラミング入門
ユーザー pekempey
提出日時 2016-10-28 22:54:35
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 1,173 bytes
コンパイル時間 1,399 ms
コンパイル使用メモリ 165,840 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-11-24 18:30:00
合計ジャッジ時間 10,535 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2 WA * 1
other AC * 41 WA * 55 RE * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

pair<long long, long long> extgcd(long long a, long long b, long long c) {
	if (b == 0) return make_pair(c, 0);
	long long x, y;
	tie(x, y) = extgcd(b, a % b, c);
	return make_pair(y, x - a / b * y);
}

int gcd(int x, int y) {
	if (y == 0) return x;
	return gcd(y, x % y);
}

string create(int x, char c) {
	if (x >= 10100) x = 10100;
	string s = "";
	for (int i = 0; i < x; i++) s += c;
	for (int i = 0; i < x - 1; i++) s += 'C';
	return s;
}

int main() {
	int x, y, z;
	cin >> x >> y >> z;

	int g = gcd(x, y);

	if (z % g != 0) {
		cout << "mourennaihasimasenn" << endl;
		return 0;
	}

	x /= g;
	y /= g;
	z /= g;

	long long a, b;
	tie(a, b) = extgcd(x, y, z);

	string ans;
	if (b == 0) {
		ans = create(abs(a), 'c');
	} else if (a == 0) {
		ans = create(abs(b), 'w');
	} else if (a > 0 && b > 0) {
		ans = create(abs(a), 'c') + create(abs(b), 'w') + "C";
	} else if (a < 0) {
		ans = create(abs(b), 'w') + create(abs(a), 'c') + "W";
	} else if (b < 0) {
		ans = create(abs(a), 'c') + create(abs(b), 'w') + "W";
	}
	if (ans.size() > 10000) {
		cout << "mourennaihasimasenn" << endl;
	} else {
		cout << ans << endl;
	}
}
0