Submission #1244207

#TimeUsernameProblemLanguageResultExecution timeMemory
1244207AlmontherTeam Contest (JOI22_team)C++20
0 / 100
0 ms324 KiB
#include<bits/stdc++.h> #define ll long long #define co cout<< using namespace std; // stuff const int maxn=2e5+5; int sh[3],n,arr[maxn][3]; int dp[maxn][8]; int rec(int x,int mask){ if(x==n) return (mask==7); if(dp[x][mask]!=-1) return dp[x][mask]; bool ans=rec(x+1,mask); for(int i=0;i<3;i++){ if((mask&(1<<i))==0){ if(arr[x][i]==sh[i]){ bool yes=1; for(int j=0;j<3;j++){ if(i!=j&&arr[x][j]>=sh[j]) yes=0; } if(yes) ans|=rec(x+1,mask|(1<<i)); } } } return dp[x][mask]=ans; } void solve(){ cin>>n; for(int i=0;i<n;i++) cin>>arr[i][0]>>arr[i][1]>>arr[i][2]; int mx=-1; if(n<=500){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ for(int k=0;k<n;k++){ if(arr[i][0]>max(arr[j][0],arr[k][0])&&arr[j][1]>max(arr[i][1],arr[k][1])&&arr[k][2]>max(arr[i][2],arr[j][2])){ mx=max(mx,arr[i][0]+arr[j][1]+arr[k][2]); } } } } co mx; } else{ for(int i=1;i<=5;i++){ for(int j=1;j<=5;j++){ for(int k=1;k<=5;k++){ sh[0]=i; sh[1]=j; sh[2]=k; memset(dp,-1,sizeof(dp)); if(rec(0,0)) mx=max(mx,i+j+k); } } } } co mx; } int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int _=1; // cin>>_; while(_--) solve(); }
#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...