Submission #719685

#TimeUsernameProblemLanguageResultExecution timeMemory
719685lamTeam Contest (JOI22_team)C++14
55 / 100
2055 ms7536 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int maxn = 1e5 + 5e4 + 10; typedef pair<int,int> ii; typedef pair<int,ii> iii; #define ff first #define ss second int n; iii a[maxn]; vector <iii> d; map<ii,bool> mp; bool cmpx(iii x, iii y) { return x.ff<y.ff; } bool cmpy(iii x, iii y) { return x.ss.ff<y.ss.ff; } void add(iii x) { if (mp[x.ss]) return; mp[x.ss]=1; d.push_back(x); for (int i=d.size()-1; i>=1; i--) if (cmpy(d[i],d[i-1])) swap(d[i],d[i-1]); else break; } int query(iii x) { int l,r; int mmax = -1; int ans=-1; for (int i=0; i<d.size(); i++) { if (i==0||d[i].ss.ff!=d[i-1].ss.ff) l=i; if (i==d.size()-1||d[i].ss.ff!=d[i+1].ss.ff) { r=i; for (int j=l; j<=r; j++) if (d[j].ss.ff > x.ss.ff) if (mmax>d[j].ss.ss&&mmax>x.ss.ss) ans=max(ans,mmax+d[j].ss.ff+x.ff); for (int j=l; j<=r; j++) mmax=max(mmax,d[j].ss.ss); } } return ans; } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cin>>n; for (int i=1; i<=n; i++) cin>>a[i].ff>>a[i].ss.ff>>a[i].ss.ss; sort(a+1,a+n+1); d.clear(); int l,r; int ans=-1; for (int i=1; i<=n; i++) { if (i==1||a[i].ff!=a[i-1].ff) l=i; if (i==n||a[i].ff!=a[i+1].ff) { r=i; for (int j=l; j<=r; j++) ans=max(ans,query(a[j])); for (int j=l; j<=r; j++) add(a[j]); } } cout<<ans<<'\n'; }

Compilation message (stderr)

team.cpp: In function 'long long int query(iii)':
team.cpp:36:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |     for (int i=0; i<d.size(); i++)
      |                   ~^~~~~~~~~
team.cpp:39:14: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |         if (i==d.size()-1||d[i].ss.ff!=d[i+1].ss.ff)
      |             ~^~~~~~~~~~~~
#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...