답안 #512624

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
512624 2022-01-16T14:05:33 Z David_M MalnaRISC (COI21_malnarisc) C++14
23.1834 / 100
2 ms 460 KB
#include <bits/stdc++.h>
#define ll long long
#define F first
#define S second
#define all(x) (x).begin(), (x).end()
#define pii pair<int, int>
#define FF first.first
#define FS first.second
#define pb push_back
using namespace std;
ll n, T=1;
vector <pii> v[1000];

void add(int x, int y, int t){
    x++; y++;
    if(x>n || y>n)return;
    v[t].pb({x, y});T=t;
}

int merge(int l, int r, int t){
    int m=l+r>>1, e=r-l>>1;
    for (int i=l; i<m; i++)add(i, i+e, t);
    return (l+1==r) ? t : merge(l+m>>1, m+r>>1, t+1);
}

int solve(int l, int r, int t=1){
    if(l+1==r)return t;
    //cout<<t<<" ";
    int tt;
    tt=solve(l, l+r>>1, t);
    tt=solve(l+r>>1, r, t);
    tt=merge(l, r, tt);
    solve(l, l+r>>1, tt);
    tt=solve(l+r>>1, r, tt);
    return tt;
}

void output(){
    cout<<T<<'\n';
    for (int i=1; i<=T; i++){
        for(auto [x,y]:v[i])cout<<"CMPSWP R"<<x<<" R"<<y<<" ";
        cout<<'\n';
    }
}

main(){ios_base::sync_with_stdio(false), cin.tie(0);

	cin>>n;
	int k=1;
	while(k<n)k<<=1;
	solve(0, k);
    output();
}

Compilation message

malnarisc.cpp: In function 'int merge(int, int, int)':
malnarisc.cpp:21:12: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   21 |     int m=l+r>>1, e=r-l>>1;
      |           ~^~
malnarisc.cpp:21:22: warning: suggest parentheses around '-' inside '>>' [-Wparentheses]
   21 |     int m=l+r>>1, e=r-l>>1;
      |                     ~^~
malnarisc.cpp:23:34: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   23 |     return (l+1==r) ? t : merge(l+m>>1, m+r>>1, t+1);
      |                                 ~^~
malnarisc.cpp:23:42: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   23 |     return (l+1==r) ? t : merge(l+m>>1, m+r>>1, t+1);
      |                                         ~^~
malnarisc.cpp: In function 'int solve(int, int, int)':
malnarisc.cpp:30:18: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   30 |     tt=solve(l, l+r>>1, t);
      |                 ~^~
malnarisc.cpp:31:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   31 |     tt=solve(l+r>>1, r, t);
      |              ~^~
malnarisc.cpp:33:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   33 |     solve(l, l+r>>1, tt);
      |              ~^~
malnarisc.cpp:34:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   34 |     tt=solve(l+r>>1, r, tt);
      |              ~^~
malnarisc.cpp: In function 'void output()':
malnarisc.cpp:41:18: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   41 |         for(auto [x,y]:v[i])cout<<"CMPSWP R"<<x<<" R"<<y<<" ";
      |                  ^
malnarisc.cpp: At global scope:
malnarisc.cpp:46:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   46 | main(){ios_base::sync_with_stdio(false), cin.tie(0);
      | ^~~~
# 결과 실행 시간 메모리 Grader output
1 Partially correct 0 ms 204 KB Partially correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 1 ms 332 KB Partially correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 0 ms 332 KB Partially correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 1 ms 332 KB Partially correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 1 ms 332 KB Partially correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 2 ms 332 KB Partially correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 2 ms 460 KB Partially correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 2 ms 460 KB Partially correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 2 ms 460 KB Partially correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 2 ms 460 KB Partially correct