제출 #602735

#제출 시각아이디문제언어결과실행 시간메모리
602735BT21tataPalembang Bridges (APIO15_bridge)C++17
63 / 100
2065 ms3128 KiB
#include<bits/stdc++.h> // #include <ext/pb_ds/assoc_container.hpp> // using namespace __gnu_pbds; // #pragma GCC target ("avx,avx2,fma") // #pragma GCC optimize("Ofast") // #pragma GCC optimize("unroll-loops") typedef long long ll; typedef long double ld; typedef unsigned long long ull; #define SPEED ios_base::sync_with_stdio(false); cin.tie(0), cout.tie(0) #define rall(v) (v).rbegin(),(v).rend() #define all(v) (v).begin(),(v).end() #define setp fixed<<setprecision #define OK cerr<<"OK"<<endl<<flush #define pii pair<int, int> #define pll pair<ll, ll> #define pb push_back #define F first #define S second #define y0 jahdakdh #define y1 jahsadakdakdh #define endl '\n' const ll MOD=1e9+7; const ll mod=(1ll<<31)-1; const ld eps=1e-8; using namespace std; mt19937 rng(std::chrono::system_clock::now().time_since_epoch().count()); int n, k; ll ans=MOD*MOD, fx; vector<pll> v; vector<int> pos; ll ternary(int br1, int br2) { ll cnt=0; for(pll u : v) cnt+=min(abs(u.F-br1)+abs(u.S-br1)+1, abs(u.F-br2)+abs(u.S-br2)+1); return cnt+fx; } void solve1() { int l=0, r=pos.size()-1; while(l<=r) { int mid1=l+(r-l)/3; int mid2=r-(r-l)/3; ll ans1=ternary(pos[mid1], pos[mid1]); ll ans2=ternary(pos[mid2], pos[mid2]); ans=min({ans, ans1, ans2}); if(ans1==ans2) { l=mid1+1; r=mid2-1; } else if(ans1<ans2) r=mid2-1; else l=mid1+1; } cout<<ans; } void solve2() { for(int i=0; i<(int)pos.size(); i++) { int l=i+1, r=pos.size()-1; while(l<=r) { int mid1=l+(r-l)/3; int mid2=r-(r-l)/3; ll ans1=ternary(pos[i], pos[mid1]); ll ans2=ternary(pos[i], pos[mid2]); ans=min({ans, ans1, ans2}); if(ans1==ans2) { l=mid1+1; r=mid2-1; } else if(ans1<ans2) r=mid2-1; else l=mid1+1; } } cout<<ans<<endl; } int main() { SPEED; cin>>k>>n; for(int i=0; i<n; i++) { char a, b; ll x, y; cin>>a>>x>>b>>y; pos.pb(x); pos.pb(y); if(a==b) fx+=abs(y-x); else v.pb({x, y}); } sort(all(pos)); if(k==1) solve1(); else solve2(); return 0; } /* 2 5 B 0 A 4 B 1 B 3 A 5 B 7 B 2 A 6 B 1 A 7 */
#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...