이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
const int nx=1e3+5;
int s, n, vs[nx], a[nx];
vector<pair<int, int>> res;
void solve(int sz)
{
pair<int, pair<int, int>> mx;
int cnt=0;
for (int i=1; i<=n; i++) if (!vs[i]) mx=max(mx, {a[i], {i, ++cnt}});
vs[mx.second.first]=1;
//cout<<"debug "<<mx.second.first<<' '<<mx.second.second<<'\n';
cnt=mx.second.second;
for (int i=1; i<sz; i++) res.push_back({i, i+1});
for (int i=cnt; i<sz; i++) res.push_back({i+1, i});
for (int i=cnt-2; i>=1; i--) res.push_back({i, i+1});
}
int main()
{
cin.tie(NULL)->sync_with_stdio(false);
cin>>n>>s;
for (int i=1; i<=n; i++) cin>>a[i];
for (int i=1; i<=n; i++) solve(n-i+1);
for (int i=n-1; i>=1; i--) res.push_back({i, i+1});
cout<<res.size()<<'\n';
for (auto x:res) cout<<x.first<<' '<<x.second<<'\n';
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |