Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cmath>
- #include<vector>
- #include<algorithm>
- #include<set>
- #include<deque>
- using namespace std;
- vector<int>dpp(4,0);
- vector<int>dpc(4,0);
- multiset<int>s;
- int i;
- void f(int a,int b,int c){
- s.clear();
- if(dpp[0]!=0 || i==0)
- s.insert({dpp[0]+a,dpp[0]+b,dpp[0]+c});
- if(dpp[1]!=0 || i==0)
- s.insert({dpp[1]+a,dpp[1]+b,dpp[1]+c});
- if(dpp[2]!=0 || i==0)
- s.insert({dpp[2]+a,dpp[2]+b,dpp[2]+c});
- if(dpp[3]!=0 || i==0)
- s.insert({dpp[3]+a,dpp[3]+b,dpp[3]+c});
- for(auto x:s)
- dpc[x%4]=max(dpc[x%4],x);
- }
- int main(){
- int n;
- int a,b,c;
- cin>>n;
- int ans=0;
- for(i=0;i<n;i++){
- cin>>a>>b>>c;
- dpp[0]=dpc[0];
- dpp[1]=dpc[1];
- dpp[2]=dpc[2];
- dpp[3]=dpc[3];
- dpc.assign(4,0);
- f(a+b,a+c,b+c);
- }
- cout<<dpc[0]<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement