Submission #626509

#TimeUsernameProblemLanguageResultExecution timeMemory
626509Sasha008Catfish Farm (IOI22_fish)C++17
12 / 100
90 ms23664 KiB
#include<bits/stdc++.h> //#include "prison.h" #pragma GCC optimize ("O3") using namespace std; #define el "\n" #define se " " #define ll long long #define ld long double #define ff first #define ss second #define pb push_back const ll INF=1e18,ch=1e18; ll a,b,c,d,n,COST,t,last,ab,ba,n1,n2,fl1,fl2,o1,o2,flag,flag1,flag2,g,m,m1,m2,i,j,lr,f,k,l,r,y,o,p,mx=-ch,mx1=-ch,mx2=-ch,q,q1,q2,q3,q4,mn=ch,mn1=ch,mn2=ch,f1,f2,f3,pos,ans,sum,sz=1,MOD=1e9+7,zero=0,a1,b1,c1,val,sum1,cur,res,ans1,res1,kk,kkk,cnt,cnt1,fl; pair < ll , pair < ll , ll > > A[300005]; ll B[4][300005]; pair < ll , ll > C[300005][3]; ll max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) { n=N;k=M; for(i=1;i<=k;i++) { A[i].ff=X[i-1]+1; A[i].ss.ff=Y[i-1]+1; if (A[i].ss.ff==1) flag++; A[i].ss.ss=W[i-1]; if (A[i].ff%2!=0) q1++; if (A[i].ff<=2) q2++; } if (q1==k) { for(i=1;i<=k;i++) { f+=A[i].ss.ss; } return f; } else if (q2==k) { for(i=1;i<=k;i++) { B[A[i].ff][A[i].ss.ff]=A[i].ss.ss; } for(i=1;i<=300001;i++) { f+=max(B[1][i],B[2][i]); } return f; } else if (flag==k) { ll dp[300005][3]={0}; ll C[300005]={0}; for(i=1;i<=k;i++) { C[A[i].ff]=A[i].ss.ss; } dp[1][0]=0; dp[1][1]=C[2]; for(i=2;i<=n;i++) { dp[i][0]=max(dp[i-1][0],dp[i-1][1]); dp[i][1]=max({dp[i-1][1]-C[i],dp[i-2][1],dp[i-2][0]+C[i-1]})+C[i+1]; } return max(dp[n][0],dp[n][1]); } else { for(i=1;i<=k;i++) { j=A[i].ff; if (C[j][1].ff==0) {C[j][1].ff=A[i].ss.ss;C[j][2].ff=A[i].ss.ff;} else {C[j][1].ss=A[i].ss.ss;C[j][2].ss=A[i].ss.ff;} } for(i=1;i<=n;i++) { a=C[i][2].ff;b=C[i][2].ss; if (a==0) continue; if (b==0) { f+=C[i][1].ff; continue; } if (a>b) swap(a,b); if ((a+1!=b)||(a!=1&&b!=n)) { f+=C[i][1].ff; f+=C[i][1].ss; continue; } else { f+=max(C[i][1].ff,C[i][1].ss); } } return f; } } //int main() //{ // ios_base::sync_with_stdio(0); // cin.tie(0); // cout.tie(0); // cin>>n>>a>>b; // vector < vector < int > > v=devise_strategy(a,b); //}
#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...