제출 #33785

#제출 시각아이디문제언어결과실행 시간메모리
33785leejseoAliens (IOI16_aliens)C++98
컴파일 에러
0 ms0 KiB
#include "aliens.h" #include <stdio.h> #include <algorithm> using namespace std; typedef long long lld; #define append push_back #define MAXN 100001 #define all(v) (v).begin(), (v).end() long long D[MAXN][501]; struct Point{ int r, c; } A[MAXN]; long long take_photos(int n, int m, int k, std::vector<int> r, std::vector<int> c) { // n : interesting place // m : row // k : max image vector <Point> arr; for (int i = 0; i < n; i ++) arr.append({min(r[i], c[i]), max(r[i], c[i])}); sort(all(arr), [](const Point &a, const Point &b){ if (a.c != b.c) return a.c < b.c; return a.r > b.r; }); int K = min(k, n); for (int i=1; i <= n; i++) for(int j=1; j<=K; j++) D[i][j] = 1e18; for (int i=1; i<=n; i++) D[i][1] = (long long )(A[i].c - A[1].r+1 )*(A[i].c - A[1].r+1); for (int i=2; i<K; i++){ for(int j=1; j<n; j++) for (int k=j+1; k<=n; k++){ long long v = D[j][i] + (long long)(A[k].c - A[j+1].r+1)*(A[k].c - A[j+1].r+1); if (A[j+1].r <= A[j].c) v -= (long long)(A[j].c - A[j+1].r+1)*(A[k].c-A[j+1].r+1); D[k][i+1] = min(D[k][i+1], v); } } return D[n][K]; }

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

aliens.cpp: In function 'long long int take_photos(int, int, int, std::vector<int>, std::vector<int>)':
aliens.cpp:22:45: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
     for (int i = 0; i < n; i ++) arr.append({min(r[i], c[i]), max(r[i], c[i])});
                                             ^
aliens.cpp:22:79: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
     for (int i = 0; i < n; i ++) arr.append({min(r[i], c[i]), max(r[i], c[i])});
                                                                               ^
aliens.cpp:26:5: warning: lambda expressions only available with -std=c++11 or -std=gnu++11
     });
     ^
aliens.cpp:26:6: error: no matching function for call to 'sort(std::vector<Point>::iterator, std::vector<Point>::iterator, take_photos(int, int, int, std::vector<int>, std::vector<int>)::<lambda(const Point&, const Point&)>)'
     });
      ^
In file included from /usr/include/c++/5/algorithm:62:0,
                 from aliens.cpp:3:
/usr/include/c++/5/bits/stl_algo.h:4689:5: note: candidate: template<class _RAIter> void std::sort(_RAIter, _RAIter)
     sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
     ^
/usr/include/c++/5/bits/stl_algo.h:4689:5: note:   template argument deduction/substitution failed:
aliens.cpp:26:6: note:   candidate expects 2 arguments, 3 provided
     });
      ^
In file included from /usr/include/c++/5/algorithm:62:0,
                 from aliens.cpp:3:
/usr/include/c++/5/bits/stl_algo.h:4718:5: note: candidate: template<class _RAIter, class _Compare> void std::sort(_RAIter, _RAIter, _Compare)
     sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
     ^
/usr/include/c++/5/bits/stl_algo.h:4718:5: note:   template argument deduction/substitution failed:
aliens.cpp: In substitution of 'template<class _RAIter, class _Compare> void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<Point*, std::vector<Point> >; _Compare = take_photos(int, int, int, std::vector<int>, std::vector<int>)::<lambda(const Point&, const Point&)>]':
aliens.cpp:26:6:   required from here
aliens.cpp:26:6: error: template argument for 'template<class _RAIter, class _Compare> void std::sort(_RAIter, _RAIter, _Compare)' uses local type 'take_photos(int, int, int, std::vector<int>, std::vector<int>)::<lambda(const Point&, const Point&)>'
     });
      ^
aliens.cpp:26:6: error:   trying to instantiate 'template<class _RAIter, class _Compare> void std::sort(_RAIter, _RAIter, _Compare)'