제출 #1273313

#제출 시각아이디문제언어결과실행 시간메모리
1273313quanduongxuan12Arranging Shoes (IOI19_shoes)C++20
30 / 100
13 ms1960 KiB
#include <bits/stdc++.h> #include "shoes.h" using namespace std; #define name "shoes" #define MAXN 100005 #define pb push_back #define pf push_front #define ll long long #define ii pair<int, int> #define fs first #define sc second #define ill pair<int, ll> #define lli pair<ll, int> #define llll pair<ll, ll> #define all(v) v.begin(),v.end() #define uni(v) v.erase(unique(all(v)),v.end()) #define bit(n,i) (((n)>>(i))&1) #define FOR(i,a,b) for (int i=(a),_b=(b); i<=_b; i++) #define FORD(i,a,b) for (int i=(a),_b=(b); i>=_b; i--) #define MASK(i) (1LL<<(i)) const int INF=1e9; const int MOD=1e9+7; void add(int &u, int v){ u+=v; if (u>=MOD) u-=MOD; } void sub(int &u, int v){ u-=v; if (u<0) u+=MOD; } void minimize(ll &u, ll v){ u=min(u,v); } void maximize(int &u, int v){ u=max(u,v); } long long Rand(long long l, long long r){ ll tmp=0; FOR(i,1,4) tmp=((tmp<<15)^(((1<<15)-1)&rand())); return l+tmp%(r-l+1); } namespace sub2{ ll solve(vector<int> S){ vector<int> perm; FOR(i,0,(int)S.size()-1) if (S[i]<0) perm.pb(i); vector<int> a,b; ll kq=1e18; do{ a=S; b.clear(); ll res=0; for (int id:perm){ b.pb(S[id]); b.pb(-S[id]); } FOR(i,0,(int)S.size()-1){ FOR(j,i,(int)S.size()-1) if (b[i]==a[j]){ int u=j; while (u>i){ res++; swap(a[u],a[u-1]); --u; } break; } } minimize(kq,res); } while (next_permutation(all(perm))); return kq; } } ll count_swaps(vector<int> S){ if (S.size()<=16) return sub2::solve(S); //if (sub3::check(S)) return sub3::solve(S); //if (sub4::check(S)) return sub4::solve(S); return 0; } /* int main() { freopen(name".inp","r",stdin); freopen(name".out","w",stdout); ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); int n; cin>>n; vector<int> a; FOR(i,1,2*n){ a.emplace_back(); cin>>a[i-1]; } cout<<count_swaps(a); return 0; } */
#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...