제출 #982341

#제출 시각아이디문제언어결과실행 시간메모리
982341simona1230자매 도시 (APIO20_swap)C++17
6 / 100
122 ms22456 KiB
#include "swap.h"
#include <bits/stdc++.h>
using namespace std;

int maxx,minn,maxw;
int n,m,x,y;
vector<int> v[100001],w[100001],num[100001];

struct edge
{
    int x,d;
    edge(){}
    edge(int _x,int _d)
    {
        x=_x;
        d=_d;
    }

    bool operator<(const edge&e)const
    {
        return e.d<d;
    }
};

int conv[100001],a[100001];
bool sec=1;
int t[400001];

void build(int i,int l,int r)
{
    if(l==r)
    {
        t[i]=a[l];
        return;
    }
    int m=(l+r)/2;
    build(i*2,l,m);
    build(i*2+1,m+1,r);

    t[i]=max(t[i*2],t[i*2+1]);
}

int query(int i,int l,int r,int ql,int qr)
{
    if(ql>qr)return 0;
    if(ql<=l&&r<=qr)return t[i];

    int m=(l+r)/2;
    return max(query(i*2,l,m,ql,min(qr,m)),query(i*2+1,m+1,r,max(m+1,ql),qr));
}

void init(int N, int M,std::vector<int> U, std::vector<int> V, std::vector<int> W)
{
    minn=N;
    n=N;
    m=M;
    for(int i=0;i<m;i++)
    {
        if(U[i]!=0)sec=0;
        maxw=max(maxw,W[i]);
        v[U[i]].push_back(V[i]);
        v[V[i]].push_back(U[i]);
        w[U[i]].push_back(W[i]);
        w[V[i]].push_back(W[i]);
        num[U[i]].push_back(i);
        num[V[i]].push_back(i);
        maxx=max(maxx,(int)v[U[i]].size());
        maxx=max(maxx,(int)v[V[i]].size());
    }

    for(int i=0;i<n;i++)
    {
        minn=min(minn,(int)v[i].size());
    }
    //cout<<maxx<<" "<<minn<<endl;

    /*if(maxx<=2)
    {
        int ver=0;
        int cnt=1;
        do
        {
            conv[ver]=cnt;
            if(conv[v[ver][0]])ver=v[ver][1],a[cnt]=w[ver][1];
            else ver=v[ver][0],a[cnt]=w[ver][0];
            if(cnt==n)
            {
                if(v[ver][0]==0)a[cnt]=w[ver][0];
                else a[cnt]=w[ver][1];
            }
            cnt++;
        }while(cnt<=n);

        //for(int i=0;i<n;i++)
        //    cout<<conv[i]<<endl;

            build(1,1,n);
    }*/
}

int getMinimumFuelCapacity(int X, int Y)
{
    x=X;
    y=Y;
    if(maxx<=2)
    {
        if(minn==1)return -1;
        return maxw;
    }
}

컴파일 시 표준 에러 (stderr) 메시지

swap.cpp: In function 'int getMinimumFuelCapacity(int, int)':
swap.cpp:110:1: warning: control reaches end of non-void function [-Wreturn-type]
  110 | }
      | ^
#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...