Submission #795187

#TimeUsernameProblemLanguageResultExecution timeMemory
795187ln_eCatfish Farm (IOI22_fish)C++17
3 / 100
70 ms11624 KiB
     #include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho
    #include "fish.h"
    using ll=long long;
    using ld=long double;
    int const INF=1000000005;
    ll const LINF=1000000000000000005;
    ll const mod=1000000007;
    ld const PI=3.14159265359;
    ll const MAX_N=3e5+5;
    ld const EPS=0.00000001;
    #pragma GCC optimize("O3")
    #pragma GCC optimize("Ofast")
    #define f first
    #define s second
    #define pb push_back
    #define mp make_pair
    #define endl '\n'
    #define sz(a) (int)a.size()
    #define CODE_START  ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    using namespace std;
    long long pref[100005][3],a[100005][3],sum[5005][5005],suf[100005][3];
    bool check1(vector<int>x){
        for(ll i=0;i<x.size();i++)
        {
            if(x[i]%2==1){
                return 0;
            }
    }
    return 1;
}
bool check2(vector<int>x){
    for(ll i=0;i<x.size();i++)
    {
        if(x[i]>1){
            return 0;
        }
}
return 1;
}
bool check3(vector<int>y){
for(ll i=0;i<y.size();i++){
    if(y[i]!=0){
        return 0;
    }
}
return 1;
}
    long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) {
    for(ll i=0;i<M;i++)
    {
        a[X[i]+1][Y[i]+1]+=W[i];
    }
    if(check1(X)){
        ll ans=0;
        for(ll i=0;i<M;i++)
        {
            ans+=W[i];
        }
        return ans;
    }else if(check2(X)){
        ll sum1=0,sum2=0,ans=0;
        for(ll i=0;i<M;i++)
        {
            if(X[i]==0){
                sum1+=W[i];
            }else sum2+=W[i];
        }
        ans=max(sum1,sum2);
        return ans;
    }else if(check3(Y)){
        ll ans=0;
        pref[0][1]=-LINF;
        pref[0][2]=-LINF;
        for(ll i=1;i<=N;i++){
            pref[i][0]=pref[i-1][0];
            pref[i][1]=max(pref[i-1][0]+a[i-1][1],pref[i-1][2]);
            pref[i][2]=max(pref[i-1][1]+a[i][1],pref[i-1][2]+a[i][1]);
        }
        ans=max(pref[N][0],max(pref[N][1],pref[N][2]));
        return ans;
    }else {
    return 0;    
    }
}

Compilation message (stderr)

fish.cpp: In function 'bool check1(std::vector<int>)':
fish.cpp:23:21: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |         for(ll i=0;i<x.size();i++)
      |                    ~^~~~~~~~~
fish.cpp: In function 'bool check2(std::vector<int>)':
fish.cpp:32:17: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |     for(ll i=0;i<x.size();i++)
      |                ~^~~~~~~~~
fish.cpp: In function 'bool check3(std::vector<int>)':
fish.cpp:41:13: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 | for(ll i=0;i<y.size();i++){
      |            ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...