Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #ifdef SG
- #include <debug.h>
- #else
- template<typename T> struct outputer;
- struct outputable {};
- #define PRINT(...)
- #define OUTPUT(...)
- #define show(...)
- #define debug(...)
- #define deepen(...)
- #define timer(...)
- #define fbegin(...)
- #define fend
- #define pbegin(...)
- #define pend
- #endif
- #define ARG4(_1,_2,_3,_4,...) _4
- #define forn3(i,l,r) for (int i = int(l); i < int(r); ++i)
- #define forn2(i,n) forn3 (i, 0, n)
- #define forn(...) ARG4(__VA_ARGS__, forn3, forn2) (__VA_ARGS__)
- #define ford3(i,l,r) for (int i = int(r) - 1; i >= int(l); --i)
- #define ford2(i,n) ford3 (i, 0, n)
- #define ford(...) ARG4(__VA_ARGS__, ford3, ford2) (__VA_ARGS__)
- #define ve vector
- #define pa pair
- #define tu tuple
- #define mp make_pair
- #define mt make_tuple
- #define pb emplace_back
- #define fs first
- #define sc second
- #define all(a) (a).begin(), (a).end()
- #define sz(a) ((int)(a).size())
- typedef long double ld;
- typedef int64_t ll;
- typedef uint64_t ull;
- typedef uint32_t ui;
- typedef uint16_t us;
- typedef uint8_t uc;
- typedef pa<int, int> pii;
- typedef pa<int, ll> pil;
- typedef pa<ll, int> pli;
- typedef pa<ll, ll> pll;
- typedef ve<int> vi;
- template<typename T> inline auto sqr (T x) -> decltype(x * x) {return x * x;}
- template<typename T1, typename T2> inline bool umx (T1& a, T2 b) {if (a < b) {a = b; return 1;} return 0;}
- template<typename T1, typename T2> inline bool umn (T1& a, T2 b) {if (b < a) {a = b; return 1;} return 0;}
- struct Input {
- int v, e, r, c, x;
- vi s;
- vi ld;
- ve<ve<pii>> lc;
- vi rv, re, rn;
- void read () {
- cin >> v >> e >> r >> c >> x;
- s.resize(v);
- forn (i, v) {
- cin >> s[i];
- }
- ld.resize(e);
- lc.resize(e);
- forn (i, e) {
- int k;
- cin >> ld[i] >> k;
- lc[i].resize(k);
- forn (j, k) {
- cin >> lc[i][j].fs >> lc[i][j].sc;
- }
- }
- rv.resize(r);
- re.resize(r);
- rn.resize(r);
- forn (i, r) {
- cin >> rv[i] >> re[i] >> rn[i];
- }
- }
- void init (const Input &input) {
- *this = input;
- }
- };
- struct Output {
- ve<vi> a;
- void write () {
- int cnt = 0;
- forn (i, sz(a)) {
- if (sz(a[i])) {
- ++cnt;
- }
- }
- cout << cnt << endl;
- forn (i, sz(a)) {
- if (sz(a[i])) {
- cout << i;
- forn (j, sz(a[i])) {
- cout << ' ' << a[i][j];
- }
- }
- }
- }
- };
- bool check (const Input &in, const Output &out) {
- if (sz(out.a) != in.c) {
- return 0;
- }
- forn (i, in.c) {
- vi v = out.a[i];
- sort(all(v));
- if (unique(all(v)) != v.end()) {
- return false;
- }
- int sum = 0;
- forn (i, sz(v)) {
- sum += in.s[v[i]];
- }
- }
- return 1;
- }
- int main () {
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement