제출 #1279176

#제출 시각아이디문제언어결과실행 시간메모리
1279176abyfuFancy Fence (CEOI20_fancyfence)C++20
컴파일 에러
0 ms0 KiB
//OwO //#pragma GCC optimize("O3", "unroll-loops", "O2", "Ofast") #include <bits/stdc++.h> #define ll long long #define ld long double #define namein "input.txt" #define nameout "output.txt" #define all(x) x.begin(),x.end() #define fi first #define se second #define pb push_back #define m_pi acos(-1) using namespace std; const ll inf = 1e18; const int linf = 1.5e9; void file(){ if (fopen(namein, "r")){ freopen(namein, "r", stdin); freopen(nameout, "w", stdout); } } const ll mod = 1e9 + 7; const int N = 2e5 + 5, M = 5e5 + 5; int n; int h[N], w[N]; set<int> x; ll sub4(){ ll u = h[1]; ll v = 0; for (int i = 1; i <= n; i++){ v += w[i]; v %= mod; } return (v*(v + 1)/2 % mod)*(u*(u + 1)/2 % mod) % mod; } ll sub3(){ ll u = 0; for (int i = 1; i <= n; i++) u += w[i]; u %= mod; u = u*(u + 1)/2 % mod; ll v = 0; for (int i = 1; i <= n + 1; i++){ if (h[i] < 2){ v %= mod; u = (u + v*(v + 1) % mod) % mod; v = 0; } else v += w[i]; } return u; } void run(){ cin >> n; for (int i = 1; i <= n; i++){ cin >> h[i]; x.insert(h[i]); } for (int i = 1; i <= n; i++) cin >> w[i]; if (x.size() == 1){ cout << sub4(); return; } else if (*prev(x.size()) <= 2){ cout << sub3(); return; } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); file(); run(); }

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

fancyfence.cpp: In function 'void run()':
fancyfence.cpp:68:19: error: no matching function for call to 'prev(std::set<int>::size_type)'
   68 |     else if (*prev(x.size()) <= 2){
      |               ~~~~^~~~~~~~~~
In file included from /usr/include/c++/13/bits/stl_algobase.h:66,
                 from /usr/include/c++/13/algorithm:60,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51,
                 from fancyfence.cpp:3:
/usr/include/c++/13/bits/stl_iterator_base_funcs.h:244:5: note: candidate: 'template<class _BidirectionalIterator> constexpr _BidirectionalIterator std::prev(_BidirectionalIterator, typename iterator_traits<_Iter>::difference_type)'
  244 |     prev(_BidirectionalIterator __x, typename
      |     ^~~~
/usr/include/c++/13/bits/stl_iterator_base_funcs.h:244:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/stl_iterator_base_funcs.h: In substitution of 'template<class _BidirectionalIterator> constexpr _BidirectionalIterator std::prev(_BidirectionalIterator, typename iterator_traits<_Iter>::difference_type) [with _BidirectionalIterator = long unsigned int]':
fancyfence.cpp:68:19:   required from here
/usr/include/c++/13/bits/stl_iterator_base_funcs.h:244:5: error: no type named 'difference_type' in 'struct std::iterator_traits<long unsigned int>'
fancyfence.cpp: In function 'void file()':
fancyfence.cpp:19:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |         freopen(namein, "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~
fancyfence.cpp:20:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   20 |         freopen(nameout, "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~