제출 #402995

#제출 시각아이디문제언어결과실행 시간메모리
402995EJOI2019AndrewBoxes with souvenirs (IOI15_boxes)C++14
컴파일 에러
0 ms0 KiB
#include "boxes.h"

  #include<bits/stdc++.h>
using namespace std;
long long mn(int a,int b)
{
     if(a<b)
return a;

 return b;
}
long long delivery(long long int N, long long  K,long long  L, long long p[]) {

    if(K==N)
    {

        sort(p, p+N);
        int mid = L/2;
        int sum = 0;
        for(int i = 0; i < N; i++)
            {
            if(p[i] <= mid)
            {

                sum = p[i]*2;
            }
            else if(p[i] > mid)
                {
                sum+=((L-p[i])*2);
            break;
            }
        }
        return min(sum, L);
    }
  if(K==1)
    {
       long long ans = 0;
        for(int i = 0; i < N; ++i)
            ans+=mn(p[i],L-p[i])*2;
        return ans;
    }
      else
      {

          long long ans = N*N;
        for(int i = 0; i < N; ++i)
        {
  long long s1=0;

               for(int j=i; j<N; ++j)
            s1+=mn(mn(p[i],L-p[i])*2,L);




               for(int j=i-1; j>=0; --j)
            s1+=mn(mn(p[i],L-p[i])*2,L);

            ans=min(ans,s1);

      }

          return ans;
      }
      
}

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

boxes.cpp: In function 'long long int delivery(long long int, long long int, long long int, long long int*)':
boxes.cpp:18:20: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   18 |         int mid = L/2;
      |                   ~^~
boxes.cpp:25:27: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   25 |                 sum = p[i]*2;
      |                       ~~~~^~
boxes.cpp:29:20: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   29 |                 sum+=((L-p[i])*2);
      |                 ~~~^~~~~~~~~~~~~~
boxes.cpp:33:26: error: no matching function for call to 'min(int&, long long int&)'
   33 |         return min(sum, L);
      |                          ^
In file included from /usr/include/c++/10/bits/char_traits.h:39,
                 from /usr/include/c++/10/ios:40,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from boxes.cpp:3:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
boxes.cpp:33:26: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   33 |         return min(sum, L);
      |                          ^
In file included from /usr/include/c++/10/bits/char_traits.h:39,
                 from /usr/include/c++/10/ios:40,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from boxes.cpp:3:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
boxes.cpp:33:26: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   33 |         return min(sum, L);
      |                          ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from boxes.cpp:3:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
boxes.cpp:33:26: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   33 |         return min(sum, L);
      |                          ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from boxes.cpp:3:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
boxes.cpp:33:26: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   33 |         return min(sum, L);
      |                          ^
boxes.cpp:39:24: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   39 |             ans+=mn(p[i],L-p[i])*2;
      |                     ~~~^
boxes.cpp:39:27: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   39 |             ans+=mn(p[i],L-p[i])*2;
      |                          ~^~~~~
boxes.cpp:51:26: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   51 |             s1+=mn(mn(p[i],L-p[i])*2,L);
      |                       ~~~^
boxes.cpp:51:29: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   51 |             s1+=mn(mn(p[i],L-p[i])*2,L);
      |                            ~^~~~~
boxes.cpp:51:35: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   51 |             s1+=mn(mn(p[i],L-p[i])*2,L);
      |                    ~~~~~~~~~~~~~~~^~
boxes.cpp:51:38: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   51 |             s1+=mn(mn(p[i],L-p[i])*2,L);
      |                                      ^
boxes.cpp:57:26: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   57 |             s1+=mn(mn(p[i],L-p[i])*2,L);
      |                       ~~~^
boxes.cpp:57:29: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   57 |             s1+=mn(mn(p[i],L-p[i])*2,L);
      |                            ~^~~~~
boxes.cpp:57:35: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   57 |             s1+=mn(mn(p[i],L-p[i])*2,L);
      |                    ~~~~~~~~~~~~~~~^~
boxes.cpp:57:38: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   57 |             s1+=mn(mn(p[i],L-p[i])*2,L);
      |                                      ^