Submission #420559

#TimeUsernameProblemLanguageResultExecution timeMemory
420559BertedMalnaRISC (COI21_malnarisc)C++14
0 / 100
2 ms332 KiB
#include <iostream> #include <vector> #define vi vector<int> #define pii pair<int, int> #define fst first #define snd second #define vpi vector<pii> using namespace std; int N; vector<vpi> ans; int solve(int L, int R) { if (L < R) { int M = L + R >> 1, idx = 0; idx = max(idx, solve(L, M)); idx = max(idx, solve(M + 1, R)); int sz = R - M; for (int j = 0; j < sz; j++) { while (ans.size() <= idx) ans.push_back(vpi()); for (int k = 0; k < sz; k++) { ans[idx].push_back({k + L, (k + j) % sz + M + 1}); } idx++; } if (M - L + 1 > R - M) { while (ans.size() <= idx) ans.push_back(vpi()); for (int k = 0; k < sz; k++) { ans[idx].push_back({M, k + M + 1}); } idx++; } return idx; } return 0; } int main() { cin >> N; solve(1, N); cout << ans.size() << "\n"; for (auto &V : ans) { for (int i = 0; i < V.size(); i++) { if (V[i].fst > V[i].snd) swap(V[i].fst, V[i].snd); cout << "CMPSWP R" << V[i].fst << " R" << V[i].snd << " \n"[i + 1 == V.size()]; } } return 0; }

Compilation message (stderr)

malnarisc.cpp: In function 'int solve(int, int)':
malnarisc.cpp:19:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   19 |   int M = L + R >> 1, idx = 0;
      |           ~~^~~
malnarisc.cpp:26:22: warning: comparison of integer expressions of different signedness: 'std::vector<std::vector<std::pair<int, int> > >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   26 |    while (ans.size() <= idx) ans.push_back(vpi());
      |           ~~~~~~~~~~~^~~~~~
malnarisc.cpp:36:22: warning: comparison of integer expressions of different signedness: 'std::vector<std::vector<std::pair<int, int> > >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |    while (ans.size() <= idx) ans.push_back(vpi());
      |           ~~~~~~~~~~~^~~~~~
malnarisc.cpp: In function 'int main()':
malnarisc.cpp:56:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |   for (int i = 0; i < V.size(); i++)
      |                   ~~^~~~~~~~~~
malnarisc.cpp:59:70: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |    cout << "CMPSWP R" << V[i].fst << " R" << V[i].snd << " \n"[i + 1 == V.size()];
      |                                                                ~~~~~~^~~~~~~~~~~
#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...