Submission #556203

#TimeUsernameProblemLanguageResultExecution timeMemory
556203600MihneaTeam Contest (JOI22_team)C++17
8 / 100
2077 ms2004 KiB
#include <bits/stdc++.h>

bool home = 1;

using namespace std;

struct T {
  int x;
  int y;
  int z;
};

bool cmp_x_inv(T a,T b) {
  return a.x>b.x;
}

typedef long long ll;
const int N=150000+7;
const int INF=(int)1e9+7;
int n;
T a[N];

signed main() {
#ifdef ONLINE_JUDGE
  home = 0;
#endif

  home=0;

  if (home) {
    freopen("I_am_iron_man", "r", stdin);
  }
  else {
    ios::sync_with_stdio(0); cin.tie(0);
  }

  cin>>n;
  for (int i=1;i<=n;i++) {
    cin>>a[i].x>>a[i].y>>a[i].z;
  }
  sort(a+1,a+n+1,cmp_x_inv);
  int print=-1;

  for (int ITER=0;ITER<2;ITER++) {
    int last=n;


    while(last>=1){
      int first=last;
      while(first-1>=1&&a[first-1].x==a[first].x) first--;



      for (int i=first;i<=last;i++) {
        int sol=-INF;
        int y=a[i].y,z=a[i].z;

        for (int j=last+1;j<=n;j++) {
          for (int k=j+1;k<=n;k++) {
            if (a[j].y>max(y,a[k].y) && a[k].z>max(z,a[j].z)) sol=max(sol,a[j].y+a[k].z);
          }
        }
        print=max(print,sol+a[i].x);
      }

      last=first-1;
    }
    for (int i=1;i<=n;i++) swap(a[i].y,a[i].z);
  }

  cout<<print<<"\n";
}

Compilation message (stderr)

team.cpp: In function 'int main()':
team.cpp:31:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |     freopen("I_am_iron_man", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...