結果
問題 | No.1305 Speak of the Devil |
ユーザー |
![]() |
提出日時 | 2020-12-02 00:06:09 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 6,232 bytes |
コンパイル時間 | 2,393 ms |
コンパイル使用メモリ | 182,412 KB |
最終ジャッジ日時 | 2025-01-17 04:30:42 |
合計ジャッジ時間 | 2,885 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
In file included from /usr/include/c++/13/string:43, from /usr/include/c++/13/bitset:52, from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:52, from main.cpp:7: /usr/include/c++/13/bits/allocator.h: In destructor ‘std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int> > >::_Vector_impl::~_Vector_impl()’: /usr/include/c++/13/bits/allocator.h:184:7: error: inlining failed in call to ‘always_inline’ ‘std::allocator< <template-parameter-1-1> >::~allocator() noexcept [with _Tp = std::pair<int, int>]’: target specific option mismatch 184 | ~allocator() _GLIBCXX_NOTHROW { } | ^ In file included from /usr/include/c++/13/vector:66, from /usr/include/c++/13/queue:63, from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:157: /usr/include/c++/13/bits/stl_vector.h:133:14: note: called from here 133 | struct _Vector_impl | ^~~~~~~~~~~~
ソースコード
//*#pragma GCC target("avx2")#pragma GCC optimize("O3")#pragma GCC optimize("unroll-loops")//*/#include <bits/stdc++.h>// #include <atcoder/all>using namespace std;// using namespace atcoder;#define DEBUG(x) cerr<<#x<<": "<<x<<endl;#define DEBUG_VEC(v) cerr<<#v<<":";for(int i=0;i<v.size();i++) cerr<<" "<<v[i]; cerr<<endl;#define DEBUG_MAT(v) cerr<<#v<<endl;for(int i=0;i<v.size();i++){for(int j=0;j<v[i].size();j++) {cerr<<v[i][j]<<" ";}cerr<<endl;}typedef long long ll;// #define int ll#define vi vector<int>#define vl vector<ll>#define vii vector< vector<int> >#define vll vector< vector<ll> >#define vs vector<string>#define pii pair<int,int>#define pis pair<int,string>#define psi pair<string,int>#define pll pair<ll,ll>template<class S, class T> pair<S, T> operator+(const pair<S, T> &s, const pair<S, T> &t) { return pair<S, T>(s.first + t.first, s.second + t.second); }template<class S, class T> pair<S, T> operator-(const pair<S, T> &s, const pair<S, T> &t) { return pair<S, T>(s.first - t.first, s.second - t.second); }template<class S, class T> ostream& operator<<(ostream& os, pair<S, T> p) { os << "(" << p.first << ", " << p.second << ")"; return os; }#define X first#define Y second#define rep(i,n) for(int i=0;i<(int)(n);i++)#define rep1(i,n) for(int i=1;i<=(int)(n);i++)#define rrep(i,n) for(int i=(int)(n)-1;i>=0;i--)#define rrep1(i,n) for(int i=(int)(n);i>0;i--)#define REP(i,a,b) for(int i=a;i<b;i++)#define in(x, a, b) (a <= x && x < b)#define all(c) c.begin(),c.end()void YES(bool t=true) {cout<<(t?"YES":"NO")<<endl;}void Yes(bool t=true) {cout<<(t?"Yes":"No")<<endl;}void yes(bool t=true) {cout<<(t?"yes":"no")<<endl;}void NO(bool t=true) {cout<<(t?"NO":"YES")<<endl;}void No(bool t=true) {cout<<(t?"No":"Yes")<<endl;}void no(bool t=true) {cout<<(t?"no":"yes")<<endl;}template<class T> bool chmax(T &a, const T &b) { if (a<b) { a = b; return 1; } return 0; }template<class T> bool chmin(T &a, const T &b) { if (a>b) { a = b; return 1; } return 0; }#define UNIQUE(v) v.erase(std::unique(v.begin(), v.end()), v.end());const ll inf = 1000000001;const ll INF = (ll)1e18 + 1;const long double pi = 3.1415926535897932384626433832795028841971L;#define Sp(p) cout<<setprecision(25)<< fixed<<p<<endl;// int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};// int dx2[8] = { 1,1,0,-1,-1,-1,0,1 }, dy2[8] = { 0,1,1,1,0,-1,-1,-1 };vi dx = {0, 1, 0, -1}, dy = {-1, 0, 1, 0};// vi dx2 = { 1,1,0,-1,-1,-1,0,1 }, dy2 = { 0,1,1,1,0,-1,-1,-1 };#define fio() cin.tie(0); ios::sync_with_stdio(false);// const ll MOD = 1000000007;const ll MOD = 998244353;// #define mp make_pair//#define endl '\n'struct dice {mt19937 mt;dice() : mt(chrono::steady_clock::now().time_since_epoch().count()) {}// [0, x)の一様乱数ll operator()(ll x) { return this->operator()(0, x); }// [x, y)の一様乱数ll operator()(ll x, ll y) {uniform_int_distribution<ll> dist(x, y - 1);return dist(mt);}vl operator()(int n, ll x, ll y) {vl res(n);for (int i = 0; i < n; i++) res[i] = this->operator()(x, y);return res;}} rnd;const int n = 150;const int m = 1500;vii a(n, vi(n));vector<pii> yx;int calc(int y, int x) {int res = 0;rep (i, yx.size()) {int y2 = yx[i].first, x2 = yx[i].second;if (y == y2 or x == x2) continue;if (a[y][x2] and a[y2][x]) res++;}return res;}signed main() {ll p, q;cin >> p >> q;cout << min(p, q) << endl;return 0;int cnt = 0;int mm = 11;rep (i, mm) {rep (j, mm) {int type = i * j % mm;int ni = i * mm, nj = j * mm;for (int k = 0; k < mm; k++) {a[ni + k][(nj + type + k) % mm + nj] = 1;yx.push_back(pii(ni + k, (nj + type + k) % mm + nj));cnt++;if (cnt == m) break;}if (cnt == m) break;}if (cnt == m) break;}rep (i, n) {rep (j, n) {if (a[i][j] == 1) continue;a[i][j] = 1;yx.push_back(pii(i, j));cnt++;if (cnt == m) break;}if (cnt == m) break;}sort(all(yx));int out = 0;rep (i, yx.size()) {REP (j, i + 1, yx.size()) {if (yx[i].first < yx[j].first and yx[i].second < yx[j].second) {if (a[yx[i].first][yx[j].second] and a[yx[j].first][yx[i].second]) {// DEBUG(pii(a[yx[i].first][yx[j].second], a[yx[j].first][yx[i].second]));out++;}}}}int try_num = 0;while (out > 0) {if (try_num % 10000 == 0) DEBUG(out);int idx = rnd(yx.size());int y = yx[idx].first, x = yx[idx].second;// int yb = y / mm, xb = x / mm;// int y2 = rnd(mm), x2 = rnd(mm);// y2 += yb * mm; x2 += xb * mm;int y2 = rnd(n), x2 = rnd(n);if (a[y2][x2] == 1) continue;assert(a[y][x] == 1);int now = calc(y, x);yx[idx] = pii(y2, x2);a[y2][x2] = 1;a[y][x] = 0;int nex = calc(y2, x2);if (nex <= now) {out = out - now + nex;}else {yx[idx] = pii(y, x);a[y2][x2] = 0;a[y][x] = 1;}try_num++;}cout << n << endl;int ans = 0;rep (i, n) {rep (j, n) {if (a[i][j] == 0) cout << '.';else {cout << 'O';ans++;}// cout << a[i][j];}cout << endl;}rep (i0, n) {REP (i1, i0 + 1, n) {rep (j0, n) {REP (j1, j0 + 1, n) {int cnt = 0;cnt += a[i0][j0];cnt += a[i1][j0];cnt += a[i0][j1];cnt += a[i1][j1];if (cnt == 4) {DEBUG(pii(i0, j0));DEBUG(pii(i1, j1));}assert(cnt < 4);}}}}DEBUG(ans);}