Submission #1269967

#TimeUsernameProblemLanguageResultExecution timeMemory
1269967FaggiCyberland (APIO23_cyberland)C++20
5 / 100
943 ms2162688 KiB
#include <bits/stdc++.h>
#define ll long long
#define sz(x) int(x.size())
#define all(x) x.begin(),x.end()
#define fr first
#define se second
#define pb push_back
#define mp make_pair
using namespace std;

const int MAXN=1e5+1;

double solve(int N, int M, int K, int H, std::vector<int> x, std::vector<int> y, std::vector<int> c, std::vector<int> arr) {
    if(N==2)
    {
        if(sz(c)==0)
            return -1;
        return c[0];
    }
    vector<vector<double>>v(N,vector<double>(N,-1));
    ll i;
    if(H==1)
    {
        swap(arr[1],arr[2]);
    }
    for(i=0; i<M; i++)
    {
        if(H==1)
        {
            if(x[i]==1)
                x[i]=2;
            else if(x[i]==2)
                x[i]=1;
            if(y[i]==1)
                y[i]=2;
            else if(y[i]==2)
                y[i]=1;
        }
        v[x[i]][y[i]]=c[i];
        v[y[i]][x[i]]=c[i];
    }
    double mi=-1;
    if(v[0][1]!=-1&&v[1][2]!=-1)
    {
        mi=v[0][1]+v[1][2];
        if(arr[1]==0)
        {
            mi=v[1][2];
        }
        else if(arr[1]==2)
        {
            mi=v[0][1]/2+v[1][2];
        }
    }
    if(v[0][2]!=-1)
    {
        if(mi==-1)
            mi=v[0][2];
        else
            mi=min(v[0][2],mi);
    }
    return mi;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...