Submission #1366281

#TimeUsernameProblemLanguageResultExecution timeMemory
1366281backer8002Astronomer (BOI23_astronomer)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    int K,N,S,T;
    cin >> K >> N >> S >> T;

    vector<complex<int>> points(N);
    for (auto& p : points) {
        int x,y;
        cin >> x >> y;
        p = {x,y};
    }
    double minR = DBL_MAX;
    for (int i = 0; i < N; i++) {
        vector pointsSpecial = points;
        ranges::sort(pointsSpecial,[&points,i](auto f, auto s)->bool {
            return abs(f-points[i]) < abs(s-points[i]);
        });
        const complex<double> mid = accumulate(pointsSpecial.begin(),pointsSpecial.begin()+K,complex<double>{},[](complex<double> f,complex<int> s)->complex<double> {
                return f + complex<double>{s};
        }) / complex<double>{static_cast<double>(K),0};

        const double radius = accumulate(pointsSpecial.begin(),pointsSpecial.begin()+K,0.,[mid](double r, complex<int> s) -> double {
                return max(r,abs(complex<double>{s}-mid));
        });
        minR = min(minR,radius);
    }
    cout << setprecision(12) << minR*T;
}

Compilation message (stderr)

Main.cpp: In lambda function:
Main.cpp:21:45: error: no matching function for call to 'std::complex<double>::complex(<brace-enclosed initializer list>)'
   21 |                 return f + complex<double>{s};
      |                                             ^
In file included from /usr/include/c++/13/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:127,
                 from Main.cpp:1:
/usr/include/c++/13/complex:1981:3: note: candidate: 'constexpr std::complex<double>::complex(const std::complex<long double>&)'
 1981 |   complex<double>::complex(const complex<long double>& __z)
      |   ^~~~~~~~~~~~~~~
/usr/include/c++/13/complex:1981:56: note:   no known conversion for argument 1 from 'std::complex<int>' to 'const std::complex<long double>&'
 1981 |   complex<double>::complex(const complex<long double>& __z)
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/complex:1529:26: note: candidate: 'constexpr std::complex<double>::complex(const std::complex<float>&)'
 1529 |       _GLIBCXX_CONSTEXPR complex(const complex<float>& __z)
      |                          ^~~~~~~
/usr/include/c++/13/complex:1529:56: note:   no known conversion for argument 1 from 'std::complex<int>' to 'const std::complex<float>&'
 1529 |       _GLIBCXX_CONSTEXPR complex(const complex<float>& __z)
      |                                  ~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/complex:1520:28: note: candidate: 'constexpr std::complex<double>::complex(const std::complex<double>&)'
 1520 |       _GLIBCXX14_CONSTEXPR complex(const complex&) = default;
      |                            ^~~~~~~
/usr/include/c++/13/complex:1520:36: note:   no known conversion for argument 1 from 'std::complex<int>' to 'const std::complex<double>&'
 1520 |       _GLIBCXX14_CONSTEXPR complex(const complex&) = default;
      |                                    ^~~~~~~~~~~~~~
/usr/include/c++/13/complex:1509:26: note: candidate: 'constexpr std::complex<double>::complex(double, double)'
 1509 |       _GLIBCXX_CONSTEXPR complex(double __r = 0.0, double __i = 0.0)
      |                          ^~~~~~~
/usr/include/c++/13/complex:1509:41: note:   no known conversion for argument 1 from 'std::complex<int>' to 'double'
 1509 |       _GLIBCXX_CONSTEXPR complex(double __r = 0.0, double __i = 0.0)
      |                                  ~~~~~~~^~~~~~~~~
/usr/include/c++/13/complex:1507:26: note: candidate: 'constexpr std::complex<double>::complex(_ComplexT)'
 1507 |       _GLIBCXX_CONSTEXPR complex(_ComplexT __z) : _M_value(__z) { }
      |                          ^~~~~~~
/usr/include/c++/13/complex:1507:44: note:   no known conversion for argument 1 from 'std::complex<int>' to 'std::complex<double>::_ComplexT' {aka '__complex__ double'}
 1507 |       _GLIBCXX_CONSTEXPR complex(_ComplexT __z) : _M_value(__z) { }
      |                                  ~~~~~~~~~~^~~
Main.cpp: In lambda function:
Main.cpp:25:51: error: no matching function for call to 'std::complex<double>::complex(<brace-enclosed initializer list>)'
   25 |                 return max(r,abs(complex<double>{s}-mid));
      |                                                   ^
/usr/include/c++/13/complex:1981:3: note: candidate: 'constexpr std::complex<double>::complex(const std::complex<long double>&)'
 1981 |   complex<double>::complex(const complex<long double>& __z)
      |   ^~~~~~~~~~~~~~~
/usr/include/c++/13/complex:1981:56: note:   no known conversion for argument 1 from 'std::complex<int>' to 'const std::complex<long double>&'
 1981 |   complex<double>::complex(const complex<long double>& __z)
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/complex:1529:26: note: candidate: 'constexpr std::complex<double>::complex(const std::complex<float>&)'
 1529 |       _GLIBCXX_CONSTEXPR complex(const complex<float>& __z)
      |                          ^~~~~~~
/usr/include/c++/13/complex:1529:56: note:   no known conversion for argument 1 from 'std::complex<int>' to 'const std::complex<float>&'
 1529 |       _GLIBCXX_CONSTEXPR complex(const complex<float>& __z)
      |                                  ~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/complex:1520:28: note: candidate: 'constexpr std::complex<double>::complex(const std::complex<double>&)'
 1520 |       _GLIBCXX14_CONSTEXPR complex(const complex&) = default;
      |                            ^~~~~~~
/usr/include/c++/13/complex:1520:36: note:   no known conversion for argument 1 from 'std::complex<int>' to 'const std::complex<double>&'
 1520 |       _GLIBCXX14_CONSTEXPR complex(const complex&) = default;
      |                                    ^~~~~~~~~~~~~~
/usr/include/c++/13/complex:1509:26: note: candidate: 'constexpr std::complex<double>::complex(double, double)'
 1509 |       _GLIBCXX_CONSTEXPR complex(double __r = 0.0, double __i = 0.0)
      |                          ^~~~~~~
/usr/include/c++/13/complex:1509:41: note:   no known conversion for argument 1 from 'std::complex<int>' to 'double'
 1509 |       _GLIBCXX_CONSTEXPR complex(double __r = 0.0, double __i = 0.0)
      |                                  ~~~~~~~^~~~~~~~~
/usr/include/c++/13/complex:1507:26: note: candidate: 'constexpr std::complex<double>::complex(_ComplexT)'
 1507 |       _GLIBCXX_CONSTEXPR complex(_ComplexT __z) : _M_value(__z) { }
      |                          ^~~~~~~
/usr/include/c++/13/complex:1507:44: note:   no known conversion for argument 1 from 'std::complex<int>' to 'std::complex<double>::_ComplexT' {aka '__complex__ double'}
 1507 |       _GLIBCXX_CONSTEXPR complex(_ComplexT __z) : _M_value(__z) { }
      |                                  ~~~~~~~~~~^~~