제출 #626344

#제출 시각아이디문제언어결과실행 시간메모리
626344boris_mihov메기 농장 (IOI22_fish)C++17
3 / 100
107 ms10856 KiB
#include "fish.h" #include <algorithm> #include <iostream> #include <cassert> #include <numeric> #include <vector> typedef long long llong; const int MAXM = 300000 + 10; const int MAXN = 3000 + 10; const int INF = 1e9; int n, m; struct Fish { int x, y, w; inline friend bool operator < (const Fish &a, const Fish &b) { return a.x < b.x || (a.x == b.x && a.y < b.y); } } fish[MAXM]; llong solveOdd() { llong ans = 0; for (int i = 1 ; i <= m ; ++i) { ans += fish[i].w; } return ans; } llong solveX12() { llong sum[2]; sum[0] = sum[1] = 0; for (int i = 1 ; i <= m ; ++i) { --fish[i].x; sum[fish[i].x] += fish[i].w; } std::sort(fish+1, fish+1+m); int ptr0 = 1; int ptr1 = 1; while (ptr1 <= m && fish[ptr1].x == 0) ptr1++; if (ptr1 == m+1) return sum[0]; sum[0] = 0; llong ans = sum[1]; while (ptr0 <= m && fish[ptr0].x == 0) { sum[0] += fish[ptr0].w; while (ptr1 <= m && fish[ptr1].y <= fish[ptr0].y) { sum[1] -= fish[ptr1].w; ++ptr1; } ans = std::max(ans, sum[0] + sum[1]); ptr0++; } return ans; } llong solveY1() { llong ans = 0; return ans; } llong solveNSmall() { llong ans = 0; return ans; } llong max_weights(int N, int M, std::vector <int> X, std::vector <int> Y, std::vector <int> W) { n = N; m = M; bool isOdd = true; bool isX01 = true; bool isY0 = true; for (int i = 1 ; i <= m ; ++i) { ++X[i-1]; ++Y[i-1]; fish[i].x = X[i-1]; fish[i].y = Y[i-1]; fish[i].w = W[i-1]; isOdd &= (fish[i].x &1); isX01 &= (fish[i].x <= 2); isY0 &= (fish[i].y == 1); } if (isOdd) return solveOdd(); if (isX01) return solveX12(); if (isY0) return solveY1(); return solveNSmall(); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...