제출 #520521

#제출 시각아이디문제언어결과실행 시간메모리
520521kartelMalnaRISC (COI21_malnarisc)C++14
0 / 100
1 ms332 KiB
#include <bits/stdc++.h> //#include<ext/rope> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> //#pragma GCC optimize("Ofast") //#pragma GCC optimize("unroll-loops") //#pragma GCC optimize("-O3") //#pragma GCC target("avx2") #define in(x) freopen(x, "r", stdin) #define out(x) freopen(x, "w", stdout) #define F first #define S second #define pb push_back #define sz(x) int(x.size()) #define el '\n' #define all(x) x.begin(), x.end() using namespace std; //using namespace __gnu_pbds; //using namespace __gnu_cxx; typedef long long ll; typedef long double ld; typedef short int si; typedef unsigned long long ull; //typedef tree <ll, null_type, less <ll> , rb_tree_tag, tree_order_statistics_node_update> ordered_set; vector <pair <int, int> > ans[200]; int mx_d = 0; int D[100]; void solve(int l, int r, int d) { if (l == r){ return; } int md = (l + r) >> 1; for (int i = l, j = md + 1; i <= md; i++, j++) { if (j <= r) { ans[d].pb({i, j}); } } solve(l, md, d + 1); solve(md + 1, r, d + 1); } void solve1(int l, int r, int d, bool need_ret) { if (l == r){ return; } int md = (l + r) >> 1; if (!need_ret) { solve1(l, md, d + 1, 0); solve1(md + 1, r, d + 1, 0); } if (d >= 0) { for (int i = md, j = md + 1; i >= l; i--, j++) { if (j <= r) { ans[d].pb({i, j}); } } } } int main() { // cerr.precision(7); // cerr << fixed; ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0); // in("23.in"); // in("input.txt"); out("output.txt"); // clock_t start = clock(); int n; cin >> n; for (int i = 0; i < n; i++) { D[i] = -1; } vector <vector <pair <int, int> > > cur_ans; solve1(1, n, -1, 0); for (int d = 149; d >= 0; d--) { if (sz(ans[d])) { cur_ans.pb(ans[d]); } if (sz(ans[d + 1])) { cur_ans.pb(ans[d + 1]); } } for (int i = 0; i < 150; i++) { ans[i].clear(); } solve(1, n, 0); for (int i = 0; i < 150; i++) { if (sz(ans[i])) { cur_ans.pb(ans[i]); } } cout << sz(cur_ans) + sz(cur_ans) << el; for (auto x : cur_ans) { for (auto [p1, p2] : x) { cout << "CMPSWP R" << p1 << " R" << p2 << " "; } cout << el; } for (auto x : cur_ans) { for (auto [p1, p2] : x) { cout << "CMPSWP R" << p1 << " R" << p2 << " "; } cout << el; } }

컴파일 시 표준 에러 (stderr) 메시지

malnarisc.cpp: In function 'int main()':
malnarisc.cpp:108:19: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
  108 |         for (auto [p1, p2] : x) {
      |                   ^
malnarisc.cpp:114:19: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
  114 |         for (auto [p1, p2] : x) {
      |                   ^
malnarisc.cpp:13:23: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 | #define out(x) freopen(x, "w", stdout)
      |                ~~~~~~~^~~~~~~~~~~~~~~~
malnarisc.cpp:77:5: note: in expansion of macro 'out'
   77 |     out("output.txt");
      |     ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...