結果

問題 No.600 かい文回
ユーザー eto_nagisaeto_nagisa
提出日時 2017-11-24 23:26:51
言語 C++11
(gcc 11.4.0)
結果
WA  
実行時間 -
コード長 2,010 bytes
コンパイル時間 1,171 ms
コンパイル使用メモリ 162,536 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-05-05 11:37:44
合計ジャッジ時間 4,396 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
5,248 KB
testcase_01 AC 2 ms
5,376 KB
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
testcase_12 WA -
testcase_13 WA -
testcase_14 WA -
testcase_15 AC 2 ms
5,376 KB
testcase_16 WA -
testcase_17 WA -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include "bits/stdc++.h"

#define REP(i,n) for(ll i=0;i<ll(n);++i)
#define RREP(i,n) for(ll i=ll(n)-1;i>=0;--i)
#define FOR(i,m,n) for(ll i=m;i<ll(n);++i)
#define RFOR(i,m,n) for(ll i=ll(n)-1;i>=ll(m);--i)
#define ALL(v) (v).begin(),(v).end()
#define UNIQUE(v) v.erase(unique(ALL(v)),v.end());
#define DUMP(v) REP(aa, (v).size()) { cout << v[aa]; if (aa != v.size() - 1)cout << " "; else cout << endl; }
#define INF 1000000001ll
#define MOD 1000000007ll
#define EPS 1e-9

const int dx[8] = { 1,1,0,-1,-1,-1,0,1 };
const int dy[8] = { 0,1,1,1,0,-1,-1,-1 };


using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
ll max(ll a, int b) { return max(a, ll(b)); }
ll max(int a, ll b) { return max(ll(a), b); }
ll min(ll a, int b) { return min(a, ll(b)); }
ll min(int a, ll b) { return min(ll(a), b); }
///(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)(´・ω・`)///
int f(int n) {
	int l = 0, r = 1e9;
	while (r - l > 1) {
		int mid = (r + l) / 2;
		if (mid > n)r = mid;
		else l = mid;
	}
	return l;
}


int main() {
	cin.tie(0);
	ios::sync_with_stdio(false);
	int n;
	cin >> n;
	vi isprime(100000,1);
	isprime[0] = 0;
	isprime[1] = 0;
	for (int i = 0; i < 100000; ++i) {
		if (isprime[i]) {
			for (int j = 2; j*i < 100000; ++j) {
				isprime[i*j] = false;
			}
		}
	}
	string ans;
	int cnt = 0;
	while (n > 1) {
		vi tmp;
		for (int i = 2; i*i <= n;++i) {
			if (n % 2 == 0) {
				tmp.push_back(i);
			}
		}
		if (tmp.size()==0||tmp[0]>10) {
			ans += 'a' + cnt;
			n--;
		}
		else {
			int v = -1;
			RREP(i, tmp.size()) {
				v = tmp[i];
				if (tmp[i] < 10)break;
			}
			REP(i, v) {
				ans += 'a' + cnt;
			}
			n = n / v - 1;
		}

		cnt++;
	}
	if (n == 1) {
		int k = ans.size();
		ans += 'a' + cnt;
		REP(i, k) {
			ans += ans[k - i - 1];
		}
	}
	else {
		int k = ans.size();
		REP(i, k) {
			ans += ans[k - i - 1];
		}
	}
	cout << ans << endl;
}
0