Submission #1279176

#TimeUsernameProblemLanguageResultExecution timeMemory
1279176abyfuFancy Fence (CEOI20_fancyfence)C++20
Compilation error
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();
}

Compilation message (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);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~