Submission #1244142

#TimeUsernameProblemLanguageResultExecution timeMemory
1244142lovrotTeam Contest (JOI22_team)C++20
0 / 100
27 ms3512 KiB
#include <cstdio> #include <algorithm> #include <vector> #define X first #define Y second #define PB push_back using namespace std; typedef long long ll; typedef pair<int, int> pii; const int N = 4e3 + 10; int dvade[N][N]; vector<int> x, y, z; void solve(vector<pair<pii, int>> v) { int n = v.size(); for(auto &i : v) { x.PB(i.X.X); y.PB(i.X.Y); z.PB(i.Y); } sort(x.begin(), x.end()); x.erase(unique(x.begin(), x.end()), x.end()); sort(y.begin(), y.end()); y.erase(unique(y.begin(), y.end()), y.end()); sort(z.begin(), z.end()); z.erase(unique(z.begin(), z.end()), z.end()); for(auto &i : v) { int a = i.X.X, b = i.X.Y, c = i.Y; int j = lower_bound(x.begin(), x.end(), a) - x.begin() + 1; int k = lower_bound(y.begin(), y.end(), b) - y.begin() + 1; // printf("%d %d %d %d %d\n", a, b, c, j, k); dvade[j][k] = max(dvade[j][k], c); } for(int i = 0; i <= n; ++i) { for(int j = 0; j <= n; ++j) { if(i) dvade[i][j] = max(dvade[i - 1][j], dvade[i][j]); if(j) dvade[i][j] = max(dvade[i][j], dvade[i][j - 1]); } } int ans = -1; for(auto &i : v) { for(auto &j : v) { int a = i.X.X, b = i.X.Y, c = i.Y; int a_ = j.X.X, b_ = j.X.Y, c_ = j.Y; int ind1 = lower_bound(x.begin(), x.end(), a) - x.begin(); int ind2 = lower_bound(y.begin(), y.end(), a) - y.begin(); if(a > a_ && b < b_ && c < dvade[ind1][ind2] && c_ < dvade[ind1][ind2]) { ans = max(ans, a + b_ + dvade[ind1][ind2]); } } } printf("%d\n", ans); } int main() { int n; scanf("%d", &n); vector<pair<pii, int>> v; for(; n--; ) { int x, y, z; scanf("%d%d%d", &x, &y, &z); v.PB({{x, y}, z}); } sort(v.begin(), v.end()); v.erase(unique(v.begin(), v.end()), v.end()); solve(v); return 0; }

Compilation message (stderr)

team.cpp: In function 'int main()':
team.cpp:71:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   71 |         scanf("%d", &n);
      |         ~~~~~^~~~~~~~~~
team.cpp:76:22: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   76 |                 scanf("%d%d%d", &x, &y, &z);
      |                 ~~~~~^~~~~~~~~~~~~~~~~~~~~~
#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...