結果
問題 | No.2037 NAND Pyramid |
ユーザー |
|
提出日時 | 2022-08-12 21:49:06 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 26 ms / 2,000 ms |
コード長 | 1,777 bytes |
コンパイル時間 | 1,234 ms |
コンパイル使用メモリ | 126,112 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-09-23 02:04:55 |
合計ジャッジ時間 | 2,896 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 39 |
ソースコード
#include <algorithm>#include <array>#include <bitset>#include <cassert>#include <cmath>#include <complex>#include <cstdio>#include <cstdlib>#include <cstring>#include <deque>#include <forward_list>#include <fstream>#include <initializer_list>#include <iomanip>#include <ios>#include <iostream>#include <istream>#include <iterator>#include <list>#include <map>#include <numeric>#include <ostream>#include <queue>#include <random>#include <set>#include <sstream>#include <streambuf>#include <string>#include <tuple>#include <unordered_map>#include <unordered_set>#include <utility>#include <valarray>#include <vector>using namespace std;using ll = long long;using cd = complex<double>;constexpr ll mod = 1e9 + 7, maxn = 3e5 + 10;ll lgput(ll x, ll y, ll r) { return y == 0 ? r : lgput(x * x % mod, y / 2, y % 2 ? x * r % mod : r); }ll gcd(ll x, ll y) { return y == 0 ? x : gcd(y, x % y); }pair<ll, ll> euclid_extins(ll x, ll y) {pair<ll, ll> tmp;return x == 0? make_pair(0ll, 1ll): (tmp = euclid_extins(y % x, x), swap(tmp.first, tmp.second), tmp.first -= tmp.second * (y / x), tmp);}ll inv_mod(ll x, ll mod) { return (euclid_extins(mod, x).second % mod + mod) % mod; }int nand(int x, int y) { return 1 - (x & y); }int main() {ios_base::sync_with_stdio(false);cin.tie(nullptr);int n, k;string s;cin >> n >> k >> s;k = n - k;int kk = (k - 5) / 2;k -= 2 * kk;vector<int> t(begin(s) + kk, end(s) - kk);for (auto& x : t) x -= '0';while (k--) {vector<int> u(t.size() - 1);for (int i = 0; i < u.size(); ++i) u[i] = nand(t[i], t[i + 1]);t = u;}for (int i = 0; i < t.size(); ++i) cout << t[i];}