Submission #1206552
Source Code Expand
#include <iostream> #include <fstream> #include <set> #include <map> #include <string> #include <vector> #include <bitset> #include <algorithm> #include <cstring> #include <cstdlib> #include <cmath> #include <cassert> #include <queue> #define mp make_pair #define pb push_back typedef long long ll; typedef long double ld; using namespace std; #ifndef LOCAL #define cerr _cer struct _cert { template <typename T> _cert& operator << (T) { return *this; } }; _cert _cer; #endif template <typename T> void dprint(T begin, T end) { for (auto i = begin; i != end; i++) { cerr << (*i) << " "; } cerr << "\n"; } const int MX = 310 * 310 + 310 * 4; const int INF = 1e9; struct edge { int a, b, f, c, w; }; int dd[MX]; int en[MX]; int go[MX]; vector<int> eds[MX]; vector<edge> ed; int s, t; int was[310][310]; char a[310][310]; void add_edge(int a, int b, int c, int w) { edge x; x.a = a; x.b = b; x.c = c; x.f = 0; x.w = w; eds[a].push_back(ed.size()); ed.push_back(x); swap(x.a, x.b); x.c = 0; x.w = -w; eds[b].push_back(ed.size()); ed.push_back(x); } int mincost() { int ans = 0; while (true) { for (int i = 0; i <= t; ++i) dd[i] = INF, en[i] = 0; queue<int> qu; qu.push(s); en[s] = 1; dd[s] = 0; go[s] = -1; while (!qu.empty()) { int x = qu.front(); qu.pop(); en[x] = 0; for (int e: eds[x]) { if (ed[e].f == ed[e].c) continue; int u = ed[e].b; if (dd[u] > dd[x] + ed[e].w) { dd[u] = dd[x] + ed[e].w; go[u] = e; if (!en[u]) en[u] = 1, qu.push(u); } } } if (dd[t] == INF) break; ++ans; int now = t; while (now != s) { int e = go[now]; now = ed[e].a; ed[e].f += 1; ed[e ^ 1].f -= 1; } } return ans; } int n; void dfs2(int x, int y) { was[x][y] = 1; if (a[x][y] == 'L') { for (int i = 0; i < y; ++i) if (!was[x][i]) dfs2(x, i); } else if (a[x][y] == 'R') { for (int i = y + 1; i < n; ++i) if (!was[x][i]) dfs2(x, i); } else if (a[x][y] == 'U') { for (int i = 0; i < x; ++i) if (!was[i][y]) dfs2(i, y); } else { for (int i = x + 1; i < n; ++i) if (!was[i][y]) dfs2(i, y); } cout << a[x][y]; if (a[x][y] == 'L' || a[x][y] == 'R') cout << x + 1 << "\n"; else cout << y + 1 << "\n"; } int U[310]; int D[310]; int L[310]; int R[310]; int main() { cin >> n; for (int i = 0; i < n; ++i) cin >> U[i]; for (int i = 0; i < n; ++i) cin >> D[i]; for (int i = 0; i < n; ++i) cin >> L[i]; for (int i = 0; i < n; ++i) cin >> R[i]; s = n * n + n + n + n + n; t = s + 1; for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j) add_edge(i * n + j, t, 1, 0); for (int i = 0; i < n; ++i) { int x = n * n + i; add_edge(s, x, U[i], 0); for (int j = 0; j < n; ++j) add_edge(x, j * n + i, 1, j); } for (int i = 0; i < n; ++i) { int x = n * n + n + i; add_edge(s, x, D[i], 0); for (int j = 0; j < n; ++j) add_edge(x, j * n + i, 1, n - 1 - j); } for (int i = 0; i < n; ++i) { int x = n * n + n + n + i; add_edge(s, x, L[i], 0); for (int j = 0; j < n; ++j) add_edge(x, i * n + j, 1, j); } for (int i = 0; i < n; ++i) { int x = n * n + n + n + n + i; add_edge(s, x, R[i], 0); for (int j = 0; j < n; ++j) add_edge(x, i * n + j, 1, n - 1 - j); } int c = mincost(); if (c < n * n) { cout << "NO\n"; return 0; } for (edge e: ed) { if (e.f == 0 || e.a < n * n || e.b >= n * n) continue; int x = e.b / n; int y = e.b % n; int xx = e.a - n * n; if (xx < n) a[x][y] = 'U'; else if (xx < 2 * n) a[x][y] = 'D'; else if (xx < 3 * n) a[x][y] = 'L'; else a[x][y] = 'R'; } for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j) { if (!was[i][j]) dfs2(i, j); } return 0; }
Submission Info
Submission Time | |
---|---|
Task | J - Neue Spiel |
User | LHiC |
Language | C++14 (GCC 5.4.1) |
Score | 2000 |
Code Size | 3959 Byte |
Status | TLE |
Exec Time | 4204 ms |
Memory | 32672 KB |
Judge Result
Set Name | sample | dataset1 | dataset2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 2000 / 2000 | 0 / 100 | ||||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
sample | sample-01.txt, sample-02.txt |
dataset1 | sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, 01-31.txt, 01-32.txt, 01-33.txt, 01-34.txt, 01-35.txt, 01-36.txt, 01-37.txt, 01-38.txt, 01-39.txt, 01-40.txt, 01-41.txt, 01-42.txt, 01-43.txt, 01-44.txt, 01-45.txt, 01-46.txt |
dataset2 | sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, 01-31.txt, 01-32.txt, 01-33.txt, 01-34.txt, 01-35.txt, 01-36.txt, 01-37.txt, 01-38.txt, 01-39.txt, 01-40.txt, 01-41.txt, 01-42.txt, 01-43.txt, 01-44.txt, 01-45.txt, 01-46.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, sample-01.txt, sample-02.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01-01.txt | AC | 2 ms | 2560 KB |
01-02.txt | AC | 2 ms | 2560 KB |
01-03.txt | AC | 2 ms | 2560 KB |
01-04.txt | AC | 3 ms | 2560 KB |
01-05.txt | AC | 8 ms | 2688 KB |
01-06.txt | AC | 34 ms | 3072 KB |
01-07.txt | AC | 129 ms | 3164 KB |
01-08.txt | AC | 121 ms | 3164 KB |
01-09.txt | AC | 6 ms | 2688 KB |
01-10.txt | AC | 112 ms | 3072 KB |
01-11.txt | AC | 128 ms | 3164 KB |
01-12.txt | AC | 130 ms | 3164 KB |
01-13.txt | AC | 127 ms | 3164 KB |
01-14.txt | AC | 2 ms | 2560 KB |
01-15.txt | AC | 93 ms | 3072 KB |
01-16.txt | AC | 128 ms | 3164 KB |
01-17.txt | AC | 131 ms | 3164 KB |
01-18.txt | AC | 130 ms | 3164 KB |
01-19.txt | AC | 127 ms | 3072 KB |
01-20.txt | AC | 140 ms | 3164 KB |
01-21.txt | AC | 143 ms | 3164 KB |
01-22.txt | AC | 143 ms | 3072 KB |
01-23.txt | AC | 165 ms | 3072 KB |
01-24.txt | AC | 164 ms | 3164 KB |
01-25.txt | AC | 167 ms | 3164 KB |
01-26.txt | AC | 27 ms | 2816 KB |
01-27.txt | AC | 29 ms | 2944 KB |
01-28.txt | AC | 144 ms | 3072 KB |
01-29.txt | AC | 167 ms | 3164 KB |
01-30.txt | AC | 160 ms | 3164 KB |
01-31.txt | AC | 159 ms | 3072 KB |
01-32.txt | AC | 164 ms | 3164 KB |
01-33.txt | AC | 162 ms | 3072 KB |
01-34.txt | AC | 163 ms | 3164 KB |
01-35.txt | AC | 52 ms | 3072 KB |
01-36.txt | AC | 58 ms | 3164 KB |
01-37.txt | AC | 47 ms | 3072 KB |
01-38.txt | AC | 103 ms | 3072 KB |
01-39.txt | AC | 110 ms | 3164 KB |
01-40.txt | AC | 94 ms | 3072 KB |
01-41.txt | AC | 104 ms | 3164 KB |
01-42.txt | AC | 103 ms | 3164 KB |
01-43.txt | AC | 81 ms | 3164 KB |
01-44.txt | AC | 92 ms | 3164 KB |
01-45.txt | AC | 81 ms | 3164 KB |
01-46.txt | AC | 92 ms | 3164 KB |
02-01.txt | TLE | 4204 ms | 31136 KB |
02-02.txt | TLE | 4204 ms | 30212 KB |
02-03.txt | TLE | 4204 ms | 29444 KB |
02-04.txt | TLE | 4204 ms | 28552 KB |
02-05.txt | TLE | 4204 ms | 30596 KB |
02-06.txt | TLE | 4204 ms | 32672 KB |
02-07.txt | TLE | 4204 ms | 29828 KB |
02-08.txt | TLE | 4204 ms | 30084 KB |
02-09.txt | TLE | 4204 ms | 28804 KB |
02-10.txt | TLE | 4204 ms | 29572 KB |
02-11.txt | TLE | 4204 ms | 31264 KB |
02-12.txt | TLE | 4204 ms | 29064 KB |
sample-01.txt | AC | 2 ms | 2560 KB |
sample-02.txt | AC | 2 ms | 2560 KB |