제출 #1002749

#제출 시각아이디문제언어결과실행 시간메모리
1002749DeepessonMalnaRISC (COI21_malnarisc)C++17
0 / 100
1 ms348 KiB
#include <bits/stdc++.h> typedef std::pair<int,int> pii; int main() { int n; std::cin>>n; int oldn=n; int truenum=2; while(truenum<n){ truenum*=2; } n=truenum; std::vector<std::vector<pii>> ans; for (int k = 2; k <= n; k *= 2){ // k is doubled every iteration for (int j = k/2; j > 0; j /= 2){ // j is halved at every iteration, with truncation of fractional parts std::vector<pii> tp; for (int i = 0; i < n; i++){ int l = i ^ j; if (l > i) if ( (i&k == 0)){ if(std::max(l+1,i+1)<=oldn) tp.push_back({l+1,i+1}); }else { if(std::max(l+1,i+1)<=oldn) tp.push_back({i+1,l+1}); } } if(tp.size()){ ans.push_back(tp); } } } std::cout<<ans.size()<<"\n"; for(auto&x:ans){ for(auto&y:x)std::cout<<"CMPSWP R"<<y.first<<" R"<<y.second<<" "; std::cout<<"\n"; } }

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

malnarisc.cpp: In function 'int main()':
malnarisc.cpp:20:31: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
   20 |                     if ( (i&k == 0)){
      |                             ~~^~~~
malnarisc.cpp:19:20: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   19 |                 if (l > i)
      |                    ^
#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...