Submission #685355

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
6853552023-01-24 06:46:42lunchbox1Dango Maker (JOI18_dango_maker)C++17
33 / 100
378 ms262144 KiB
// #include <algorithm>
// #include <array>
// #include <iostream>
// #include <vector>
// #include <queue>
// #include <numeric>
#include <bits/stdc++.h>
using namespace std;
const int N = 3000;
#define assert(...) 0
// https://judge.yosupo.jp/submission/110301
struct BipartiteGraph{ // https://judge.yosupo.jp/submission/59969
// Max matching in O(E root(V)) --> considerably fast, runs under 100ms for E, V <= 2e5 on library checker
private:
int n;
int Lpart, Rpart;
int matching_num;
// std::vector<std::vector<int>> G;
vector<array<int, 2>> raw_edges;
vector<int> num_starts, final_edges;
public:
std::vector<int> match;
BipartiteGraph(int a, int b, int p = 0): Lpart(a), Rpart(b), n(a + b), matching_num(-1), num_starts(a + b + 1, 0), match(n, -1) {
raw_edges.reserve(p);
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

dango_maker.cpp:12: warning: "assert" redefined
   12 | #define assert(...) 0
      | 
In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from dango_maker.cpp:7:
/usr/include/assert.h:92: note: this is the location of the previous definition
   92 | #  define assert(expr)       \
      | 
dango_maker.cpp: In constructor 'BipartiteGraph::BipartiteGraph(int, int, int)':
dango_maker.cpp:20:16: warning: 'BipartiteGraph::Rpart' will be initialized after [-Wreorder]
   20 |     int Lpart, Rpart;
      |                ^~~~~
dango_maker.cpp:19:9: warning:   'int BipartiteGraph::n' [-Wreorder]
   19 |     int n;
      |         ^
dango_maker.cpp:29:5: warning:   when initialized here [-Wreorder]
   29 |     BipartiteGraph(int a, int b, int p = 0): Lpart(a), Rpart(b), n(a + b), matching_num(-1), num_starts(a + b + 1, 0), match(n, -1) {
      |     ^~~~~~~~~~~~~~
dango_maker.cpp: In constructor 'BipartiteGraph::BipartiteGraph(int, int, const std::vector<std::array<int, 2> >&)':
dango_maker.cpp:20:16: warning: 'BipartiteGraph::Rpart' will be initialized after [-Wreorder]
   20 |     int Lpart, Rpart;
      |                ^~~~~
dango_maker.cpp:19:9: warning:   'int BipartiteGraph::n' [-Wreorder]
   19 |     int n;
      |         ^
dango_maker.cpp:32:5: warning:   when initialized here [-Wreorder]
   32 |     BipartiteGraph(int a, int b, const vector<array<int, 2>>& Edges): Lpart(a), Rpart(b), n(a + b), matching_num(-1), raw_edges(Edges), num_starts(a + b + 1, 0), match(n, -1) {}
      |     ^~~~~~~~~~~~~~
dango_maker.cpp: In member function 'std::vector<std::array<int, 2> > BipartiteGraph::minimumEdgeCover()':
dango_maker.cpp:12:21: warning: statement has no effect [-Wunused-value]
   12 | #define assert(...) 0
      |                     ^
dango_maker.cpp:113:9: note: in expansion of macro 'assert'
  113 |         assert(n - matching_num == idx);
      |         ^~~~~~
dango_maker.cpp: In member function 'int BipartiteEdgeColoring::makeDRegular(int&, std::vector<std::pair<int, int> >&, int&)':
dango_maker.cpp:12:21: warning: statement has no effect [-Wunused-value]
   12 | #define assert(...) 0
      |                     ^
dango_maker.cpp:222:5: note: in expansion of macro 'assert'
  222 |     assert (cnt[0] >= cnt[1]);
      |     ^~~~~~
dango_maker.cpp:12:21: warning: statement has no effect [-Wunused-value]
   12 | #define assert(...) 0
      |                     ^
dango_maker.cpp:228:7: note: in expansion of macro 'assert'
  228 |       assert (e.first < e.second);
      |       ^~~~~~
dango_maker.cpp: In constructor 'BipartiteEdgeColoring::BipartiteEdgeColoring(int, int, std::vector<std::pair<int, int> >)':
dango_maker.cpp:12:21: warning: statement has no effect [-Wunused-value]
   12 | #define assert(...) 0
      |                     ^
dango_maker.cpp:314:7: note: in expansion of macro 'assert'
  314 |       assert(e.first < L && e.second < R);
      |       ^~~~~~
dango_maker.cpp:12:21: warning: statement has no effect [-Wunused-value]
   12 | #define assert(...) 0
      |                     ^
dango_maker.cpp:321:7: note: in expansion of macro 'assert'
  321 |       assert (e.first < L && e.second >= L);
      |       ^~~~~~
dango_maker.cpp:320:16: warning: unused variable 'e' [-Wunused-variable]
  320 |     for(auto &&e: edges){
      |                ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...