提出 #11028868
ソースコード 拡げる
#pragma GCC target ("avx")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma warning (disable:4996)
#include"bits/stdc++.h"
#define int long long
#define MRE assert(0);
#define rep(i,n) for(int i=0;i<n;i++)
using namespace std;
const long long mod = 1000000007;
const long long inf = 1e17;
typedef pair<int, int> P;
int in[200];
vector<int>G[200];
int popcnt(int a) {
int res = 0;
rep(i, 55) {
if (a&(1ll << i))res++;
}
return res;
}
signed main() {
vector<P>V;
rep(i, 55) {
V.push_back(P((1ll << i) - 1, i));
}
int n; cin >> n; int N = n;
int cst = 0, flg = 0;
for (int i = 54; i >= 0; i--) {
if (n >= V[i].first) {
n -= V[i].first;
cst = V[i].second;
break;
}
}
int S = cst + popcnt(n);
rep(i, S - 1) {
G[i].push_back(i + 1);
G[S + i].push_back(S + i + 1);
}
rep(i, cst) {
G[i].push_back(S);
}
for (int i = 54; i >= 0; i--) {
if (n >= (1ll << i)) {
G[cst].push_back(cst + S - i);
cst++;
n -= (1ll << i);
}
}
rep(i, 2 * S) {
for (int e : G[i])in[e]++;
}
priority_queue<int>Q;
rep(i, 2 * S)if (!in[i])Q.push(i);
vector<int>V2;
while (Q.size()) {
int p = Q.top(); Q.pop();
V2.push_back(p);
for (int e : G[p]) {
in[e]--;
if (!in[e]) {
Q.push(e);
}
}
}
rep(i, V2.size()) {
V2[i] = V2[i] % S + 1;
}
cout << S + S << endl;
rep(i, V2.size()) {
if (i)cout << ' ';
cout << V2[i];
}cout << endl;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - Tautonym Puzzle |
| ユーザ | Rho17 |
| 言語 | C++14 (GCC 5.4.1) |
| 得点 | 1000 |
| コード長 | 1488 Byte |
| 結果 | AC |
| 実行時間 | 1 ms |
| メモリ | 256 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 1000 / 1000 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_example_01.txt, 00_example_02.txt |
| All | 00_example_01.txt, 00_example_02.txt, 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_example_01.txt | AC | 1 ms | 256 KiB |
| 00_example_02.txt | AC | 1 ms | 256 KiB |
| 01.txt | AC | 1 ms | 256 KiB |
| 02.txt | AC | 1 ms | 256 KiB |
| 03.txt | AC | 1 ms | 256 KiB |
| 04.txt | AC | 1 ms | 256 KiB |
| 05.txt | AC | 1 ms | 256 KiB |
| 06.txt | AC | 1 ms | 256 KiB |
| 07.txt | AC | 1 ms | 256 KiB |
| 08.txt | AC | 1 ms | 256 KiB |
| 09.txt | AC | 1 ms | 256 KiB |
| 10.txt | AC | 1 ms | 256 KiB |
| 11.txt | AC | 1 ms | 256 KiB |
| 12.txt | AC | 1 ms | 256 KiB |
| 13.txt | AC | 1 ms | 256 KiB |
| 14.txt | AC | 1 ms | 256 KiB |
| 15.txt | AC | 1 ms | 256 KiB |
| 16.txt | AC | 1 ms | 256 KiB |
| 17.txt | AC | 1 ms | 256 KiB |
| 18.txt | AC | 1 ms | 256 KiB |
| 19.txt | AC | 1 ms | 256 KiB |
| 20.txt | AC | 1 ms | 256 KiB |
| 21.txt | AC | 1 ms | 256 KiB |
| 22.txt | AC | 1 ms | 256 KiB |
| 23.txt | AC | 1 ms | 256 KiB |
| 24.txt | AC | 1 ms | 256 KiB |
| 25.txt | AC | 1 ms | 256 KiB |
| 26.txt | AC | 1 ms | 256 KiB |
| 27.txt | AC | 1 ms | 256 KiB |
| 28.txt | AC | 1 ms | 256 KiB |
| 29.txt | AC | 1 ms | 256 KiB |
| 30.txt | AC | 1 ms | 256 KiB |