답안 #717779

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
717779 2023-04-02T14:06:39 Z Rafi22 The Collection Game (BOI21_swaps) C++14
0 / 100
1 ms 208 KB
#include <bits/stdc++.h>
#include "swaps.h"

using namespace std;

#define endl '\n'
#define st first
#define nd second
#define pb push_back
#define sz(x) (int)(x).size()
#define all(x) (x).begin(), (x).end()
#define ll long long
ll mod=1000000007;
int inf=1000000007;
ll infl=1000000000000000007;

const int N=507;
/*
int p[N];
vector<pair<int,int>>tmp;

void schedule(int a,int b)
{
    tmp.pb({a,b});
}

vector<int>visit()
{
    vector<int>res;
    for(auto x:tmp) res.pb(p[x.st]>p[x.nd]);
    tmp.clear();
    return res;
}


void answer(vector<int>V)
{
    for(auto x:V) cout<<x<<" ";
    cout<<endl;
}*/

void solve(int n,int v)
{
    vector<vector<pair<int,int>>>res;
    vector<pair<int,int>>V;
    vector<int>ans(n);
    for(int i=0;i<n;i++) ans[i]=i+1;
    V.pb({1,n});
    while(sz(V)>0)
    {
        vector<pair<int,int>>X;
        vector<vector<pair<int,int>>>T;
        for(auto [l,r]:V) X.pb({l,r});
        while(sz(X)>0)
        {
            vector<pair<int,int>>nX,t;
            for(auto [l,r]:X)
            {
                int m=(l+r)/2;
                if(l<m) nX.pb({l,m});
                if(m+1<r) nX.pb({m+1,r});
                for(int i=0; m-i>=l&&m+i+1<=r;i++) t.pb({m-i,m+i+1});
            }
            T.pb(t);
            X=nX;
        }
        reverse(all(T));
        for(auto x:T) res.pb(x);
        vector<pair<int,int>>nV;
        for(auto [l,r]:V)
        {
            int m=(l+r)/2;
            if(l<m) nV.pb({l,m});
            if(m+1<r) nV.pb({m+1,r});
        }
        V=nV;
    }
    for(auto x:res)
    {
        for(auto [a,b]:x) schedule(ans[a-1],ans[b-1]);
        vector<int>A=visit();
        int it=0;
        for(auto [a,b]:x)
        {
            if(A[it]==0) swap(ans[a-1],ans[b-1]);
            it++;
        }
    }
    answer(ans);
}
/*
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++) cin>>p[i];
    solve(n,0);
    return 0;
}*/

Compilation message

swaps.cpp: In function 'void solve(int, int)':
swaps.cpp:53:18: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   53 |         for(auto [l,r]:V) X.pb({l,r});
      |                  ^
swaps.cpp:57:22: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   57 |             for(auto [l,r]:X)
      |                      ^
swaps.cpp:70:18: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   70 |         for(auto [l,r]:V)
      |                  ^
swaps.cpp:80:18: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   80 |         for(auto [a,b]:x) schedule(ans[a-1],ans[b-1]);
      |                  ^
swaps.cpp:83:18: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   83 |         for(auto [a,b]:x)
      |                  ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Not correct
2 Halted 0 ms 0 KB -