Submission #1281426

#TimeUsernameProblemLanguageResultExecution timeMemory
1281426StefanSebezPalembang Bridges (APIO15_bridge)C++20
22 / 100
82 ms1560 KiB
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define ll long long
#define ld long double
#define mp make_pair
void chmn(ll &x,ll y){x=min(x,y);}
void chmx(ll &x,ll y){x=max(x,y);}
const ll inf=1e18;
void Solve1(){
    int n;scanf("%i",&n);
    vector<int>vals;
    ll ans=0;
    for(int i=1;i<=n;i++){
        char p,q;int s,t;
        cin>>p>>s>>q>>t;
        if(p==q) ans+=abs(s-t);
        else{
            ans++;
            vals.pb(s);vals.pb(t);
        }
    }
    sort(vals.begin(),vals.end());
    int m=vals.size()/2;
    for(auto i:vals) ans+=abs(i-vals[m]);
    printf("%lld\n",ans);
}
void Solve2(){
    int n;scanf("%i",&n);
    vector<ll>vals;
    vector<pair<ll,ll>>a;
    ll ans=0;
    for(int i=1;i<=n;i++){
        char p,q;ll s,t;
        cin>>p>>s>>q>>t;
        if(p==q) ans+=abs(s-t);
        else{
            ans++;
            vals.pb(s);vals.pb(t);
            if(s>t)swap(s,t);
            a.pb({s,t});
        }
    }
    ll res=inf;
    for(auto i:vals){
        for(auto j:vals){
            ll sum=0;
            for(auto [x,y]:a){
                sum+=min(abs(x-i)+abs(y-i),abs(x-j)+abs(y-j));
            }
            chmn(res,sum);
        }
    }
    ans+=res;
    printf("%lld\n",ans);
}
int main(){
    int KK;scanf("%i",&KK);
    if(KK==1) Solve1();
    else Solve2();
    return 0;
}

Compilation message (stderr)

bridge.cpp: In function 'void Solve1()':
bridge.cpp:13:16: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |     int n;scanf("%i",&n);
      |           ~~~~~^~~~~~~~~
bridge.cpp: In function 'void Solve2()':
bridge.cpp:31:16: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |     int n;scanf("%i",&n);
      |           ~~~~~^~~~~~~~~
bridge.cpp: In function 'int main()':
bridge.cpp:60:17: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   60 |     int KK;scanf("%i",&KK);
      |            ~~~~~^~~~~~~~~~
#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...