Submission #627306

# Submission time Handle Problem Language Result Execution time Memory
627306 2022-08-12T12:33:50 Z czhang2718 Catfish Farm (IOI22_fish) C++17
Compilation error
0 ms 0 KB
#include "bits/stdc++.h"
using namespace std;

typedef long long ll;
#define f first
#define s second

const int N=3e5+4;
int n,m;
vector<pair<int,int>> fish[N];
vector<ll> dp[N], dp1[N], inc[N];

long long max_weights(int n, int m, std::vector<int> X, std::vector<int> Y,
                      std::vector<int> W) {
    for(int i=0; i<m; i++){
        fish[X[i]+1].push_back({Y[i], W[i]});
    }

    for(int i=1; i<=n; i++){
        fish[i].push_back({0, 0});
        fish[i].push_back({n, 0});
        sort(fish[i].begin(), fish[i].end());
        int p=fish[i].size();
        if(p>1 && fish[i][1].f==fish[i][0].f) fish[i].erase(fish[i].begin());
    }

    int i=0;
    fish[i].push_back({0, 0});
    dp[i].resize(2);
    dp1[i].resize(2);
    inc[i].resize(2);
    for(int j=0; j<p; j++){
            auto fi=fish[i][j];
            int y=fi.f, w=fi.s;
            while(nxt.f<fish[i+1].size() && fish[i+1][nxt.f].f+1<=y){
                nxt.s+=fish[i+1][nxt.f].s;
                nxt.f++;
            }
            while(prv.f<fish[i-1].size() && fish[i-1][prv.f].f+1<=y){
                prv.s+=fish[i-1][prv.f].s;
                prv.f++;
            }
            int k=upper_bound(fish[i-1].begin(), fish[i-1].end(), make_pair(y, int(1e9)))-fish[i-1].begin();
            dp[i][j]=max(dp1[i-1][k]-sum, prv.s+inc[i-1][k-1]);
            // cout << "inc " << prv.s+(fish[i-1][k-1].f?inc[i-1][k-1]:0) << "\n";
            int k2;
            if(i>=2){
                k2=upper_bound(fish[i-2].begin(), fish[i-2].end(), make_pair(y, int(1e9)))-fish[i-2].begin();
                dp[i][j]=max({dp[i][j], dp1[i-2][k2], dp[i-2][k2-1]+prv.s});
            }
            inc[i][j]=max(
                j?inc[i][j-1]:ll(-1e18), 
                -sum + max(prv.s+inc[i-1][k-1], i>=2?max(dp1[i-2][k2], dp[i-2][k2-1]+prv.s):0));
            sum+=w;
            // cout << "inc[" << i << "][" << j << "] " << inc[i][j] << "\n";
            // cout << "dp[" << i << "][" << j << "] " << dp[i][j] << "\n";
            dp1[i][j]=dp[i][j]+nxt.s;
            if(j) dp[i][j]=max(dp[i][j], dp[i][j-1]);
        }
    }

        for(int j=p-1; j>=0; j--){
            dp1[i][j]=max(dp1[i][j+1], dp1[i][j]);
        }
    }

    return dp1[n][0];
}

Compilation message

fish.cpp: In function 'long long int max_weights(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
fish.cpp:32:20: error: 'p' was not declared in this scope
   32 |     for(int j=0; j<p; j++){
      |                    ^
fish.cpp:35:19: error: 'nxt' was not declared in this scope
   35 |             while(nxt.f<fish[i+1].size() && fish[i+1][nxt.f].f+1<=y){
      |                   ^~~
fish.cpp:39:19: error: 'prv' was not declared in this scope
   39 |             while(prv.f<fish[i-1].size() && fish[i-1][prv.f].f+1<=y){
      |                   ^~~
fish.cpp:44:38: error: 'sum' was not declared in this scope
   44 |             dp[i][j]=max(dp1[i-1][k]-sum, prv.s+inc[i-1][k-1]);
      |                                      ^~~
fish.cpp:44:43: error: 'prv' was not declared in this scope
   44 |             dp[i][j]=max(dp1[i-1][k]-sum, prv.s+inc[i-1][k-1]);
      |                                           ^~~
fish.cpp:49:75: error: no matching function for call to 'max(<brace-enclosed initializer list>)'
   49 |                 dp[i][j]=max({dp[i][j], dp1[i-2][k2], dp[i-2][k2-1]+prv.s});
      |                                                                           ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from fish.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
fish.cpp:49:75: note:   candidate expects 2 arguments, 1 provided
   49 |                 dp[i][j]=max({dp[i][j], dp1[i-2][k2], dp[i-2][k2-1]+prv.s});
      |                                                                           ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from fish.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
fish.cpp:49:75: note:   candidate expects 3 arguments, 1 provided
   49 |                 dp[i][j]=max({dp[i][j], dp1[i-2][k2], dp[i-2][k2-1]+prv.s});
      |                                                                           ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from fish.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3480:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3480 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3480:5: note:   template argument deduction/substitution failed:
/usr/include/c++/10/bits/stl_algo.h:3486:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3486 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3486:5: note:   template argument deduction/substitution failed:
fish.cpp:57:32: error: 'nxt' was not declared in this scope
   57 |             dp1[i][j]=dp[i][j]+nxt.s;
      |                                ^~~
fish.cpp:60:5: warning: no return statement in function returning non-void [-Wreturn-type]
   60 |     }
      |     ^
fish.cpp: At global scope:
fish.cpp:62:9: error: expected unqualified-id before 'for'
   62 |         for(int j=p-1; j>=0; j--){
      |         ^~~
fish.cpp:62:24: error: 'j' does not name a type
   62 |         for(int j=p-1; j>=0; j--){
      |                        ^
fish.cpp:62:30: error: 'j' does not name a type
   62 |         for(int j=p-1; j>=0; j--){
      |                              ^
fish.cpp:65:5: error: expected declaration before '}' token
   65 |     }
      |     ^
fish.cpp:67:5: error: expected unqualified-id before 'return'
   67 |     return dp1[n][0];
      |     ^~~~~~
fish.cpp:68:1: error: expected declaration before '}' token
   68 | }
      | ^