Submission #1007211
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; const ll INF = 2e9; const int MAXN = 1200; ll go[MAXN]; int n, m; ll a[MAXN][MAXN]; ll x[MAXN]; ll cnk(ll n, ll k) { ll fc = 1; for (int j = 1; j <= k; ++j) fc *= j; ll ans = 1; for (ll j = n; j > n - k; --j) { ans *= j; if (ans >= fc * INF) return INF; } return ans / fc; } int main() { scanf("%d%d", &n, &m); for (int i = 0; i < n; ++i) for (int j = 0; j < m; ++j) scanf("%lld", &a[i][j]); for (int i = 0; i < n - 1; ++i) { if (a[i][0] > a[i + 1][0] || (m == 1 && a[i][0] == a[i + 1][0])) { cout << -1 << "\n"; return 0; } int fl = 0; for (int j = 0; j < m; ++j) { if (a[i][j] < a[i + 1][j]) { fl = 1; break; } if (a[i][j] < a[i + 1][j]) { fl = -1; break; } } if (fl == 0) { go[i] = 1; } else if (fl == 1) { if (a[i][0] < a[i + 1][0]) { continue; } ll nd = (a[i + 1][1] - a[i][1] + a[i][0] - 1) / a[i][0]; for (int j = 0; j < m; ++j) x[j] = a[i][j]; if (nd <= 100) { for (int it = 0; it < nd; ++it) { ll sum = 0; for (int j = 0; j < m; ++j) { sum = min(INF, sum + x[j]); x[j] = sum; } } } else { for (int j = 10; j < m; ++j) x[j] = INF; for (int j = min(9, m - 1); j >= 1; --j) { for (int k = 0; k < j; ++k) x[j] = min(INF, x[j] + cnk(nd - 1 + j - k, j - k) * x[k]); } } int fl2 = 0; for (int j = 0; j < m; ++j) { if (x[j] < a[i + 1][j]) { fl2 = 1; break; } if (x[j] > a[i + 1][j]) break; } if (fl2) go[i] = -nd; else go[i] = -(nd - 1); } else { ll nd = (a[i][1] - a[i + 1][1] + a[i + 1][0] - 1) / a[i + 1][0]; for (int j = 0; j < m; ++j) x[j] = a[i + 1][j]; if (nd <= 100) { for (int it = 0; it < nd; ++it) { ll sum = 0; for (int j = 0; j < m; ++j) { sum = min(INF, sum + x[j]); x[j] = sum; } } } else { for (int j = 10; j < m; ++j) x[j] = INF; for (int j = min(m - 1, 9); j >= 1; --j) { for (int k = 0; k < j; ++k) x[j] = min(INF, x[j] + cnk(nd - 1 + j - k, j - k) * x[k]); } } int fl2 = 0; for (int j = 0; j < m; ++j) { if (x[j] < a[i][j]) break; if (x[j] > a[i][j]) { fl2 = 1; break; } } if (fl2) go[i] = nd; else go[i] = nd + 1; } } ll ans = 0; ll now = 0; for (int i = 1; i < n; ++i) { if (a[i][0] > a[i - 1][0]) { now = 0; continue; } ll gg = max(0ll, now + go[i - 1]); ans += gg; now = gg; } cout << ans << "\n"; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - Takahashi the Magician |
User | LHiC |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 3034 Byte |
Status | WA |
Exec Time | 139 ms |
Memory | 9600 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:47:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d", &n, &m); ^ ./Main.cpp:50:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%lld", &a[i][j]); ^
Judge Result
Set Name | Sample | subtask1 | subtask2 | All | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 200 | 0 / 800 | 0 / 200 | ||||||||||||||
Status |
|
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_1.txt, sample_2.txt, sample_3.txt |
subtask1 | sample_1.txt, sample_3.txt, hack_1.txt, hack_2.txt, hack_3.txt, hack_4.txt, hack_5.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_2.txt, subtask_1_20.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt |
subtask2 | sample_1.txt, sample_2.txt, sample_3.txt, hack_1.txt, hack_2.txt, hack_3.txt, hack_4.txt, hack_5.txt, subtask_2_1.txt, subtask_2_10.txt, subtask_2_11.txt, subtask_2_12.txt, subtask_2_13.txt, subtask_2_14.txt, subtask_2_15.txt, subtask_2_16.txt, subtask_2_17.txt, subtask_2_18.txt, subtask_2_19.txt, subtask_2_2.txt, subtask_2_20.txt, subtask_2_21.txt, subtask_2_22.txt, subtask_2_23.txt, subtask_2_24.txt, subtask_2_25.txt, subtask_2_26.txt, subtask_2_27.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt, subtask_2_9.txt |
All | sample_1.txt, sample_2.txt, sample_3.txt, hack_1.txt, hack_2.txt, hack_3.txt, hack_4.txt, hack_5.txt, subtask_1_1.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_2.txt, subtask_1_20.txt, subtask_1_3.txt, subtask_1_4.txt, subtask_1_5.txt, subtask_1_6.txt, subtask_1_7.txt, subtask_1_8.txt, subtask_1_9.txt, subtask_2_1.txt, subtask_2_10.txt, subtask_2_11.txt, subtask_2_12.txt, subtask_2_13.txt, subtask_2_14.txt, subtask_2_15.txt, subtask_2_16.txt, subtask_2_17.txt, subtask_2_18.txt, subtask_2_19.txt, subtask_2_2.txt, subtask_2_20.txt, subtask_2_21.txt, subtask_2_22.txt, subtask_2_23.txt, subtask_2_24.txt, subtask_2_25.txt, subtask_2_26.txt, subtask_2_27.txt, subtask_2_3.txt, subtask_2_4.txt, subtask_2_5.txt, subtask_2_6.txt, subtask_2_7.txt, subtask_2_8.txt, subtask_2_9.txt, subtask_3_1.txt, subtask_3_10.txt, subtask_3_11.txt, subtask_3_12.txt, subtask_3_13.txt, subtask_3_14.txt, subtask_3_2.txt, subtask_3_3.txt, subtask_3_4.txt, subtask_3_5.txt, subtask_3_6.txt, subtask_3_7.txt, subtask_3_8.txt, subtask_3_9.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
hack_1.txt | WA | 3 ms | 256 KB |
hack_2.txt | WA | 3 ms | 256 KB |
hack_3.txt | WA | 3 ms | 256 KB |
hack_4.txt | AC | 3 ms | 256 KB |
hack_5.txt | WA | 3 ms | 256 KB |
sample_1.txt | AC | 3 ms | 256 KB |
sample_2.txt | AC | 3 ms | 256 KB |
sample_3.txt | AC | 3 ms | 256 KB |
subtask_1_1.txt | AC | 3 ms | 640 KB |
subtask_1_10.txt | AC | 3 ms | 640 KB |
subtask_1_11.txt | WA | 119 ms | 9600 KB |
subtask_1_12.txt | WA | 7 ms | 4224 KB |
subtask_1_13.txt | WA | 7 ms | 4224 KB |
subtask_1_14.txt | WA | 3 ms | 256 KB |
subtask_1_15.txt | AC | 122 ms | 9600 KB |
subtask_1_16.txt | AC | 125 ms | 9600 KB |
subtask_1_17.txt | AC | 126 ms | 9600 KB |
subtask_1_18.txt | WA | 123 ms | 9600 KB |
subtask_1_19.txt | WA | 3 ms | 256 KB |
subtask_1_2.txt | WA | 3 ms | 256 KB |
subtask_1_20.txt | AC | 7 ms | 4224 KB |
subtask_1_3.txt | WA | 3 ms | 640 KB |
subtask_1_4.txt | WA | 3 ms | 640 KB |
subtask_1_5.txt | WA | 5 ms | 1792 KB |
subtask_1_6.txt | WA | 6 ms | 2688 KB |
subtask_1_7.txt | WA | 6 ms | 3072 KB |
subtask_1_8.txt | WA | 120 ms | 9600 KB |
subtask_1_9.txt | AC | 49 ms | 8192 KB |
subtask_2_1.txt | AC | 15 ms | 4992 KB |
subtask_2_10.txt | AC | 19 ms | 3328 KB |
subtask_2_11.txt | AC | 88 ms | 9600 KB |
subtask_2_12.txt | AC | 89 ms | 9600 KB |
subtask_2_13.txt | WA | 87 ms | 9600 KB |
subtask_2_14.txt | AC | 89 ms | 9600 KB |
subtask_2_15.txt | AC | 7 ms | 4224 KB |
subtask_2_16.txt | AC | 87 ms | 9600 KB |
subtask_2_17.txt | AC | 87 ms | 9600 KB |
subtask_2_18.txt | WA | 139 ms | 9600 KB |
subtask_2_19.txt | AC | 7 ms | 4224 KB |
subtask_2_2.txt | WA | 87 ms | 9600 KB |
subtask_2_20.txt | AC | 3 ms | 512 KB |
subtask_2_21.txt | AC | 3 ms | 512 KB |
subtask_2_22.txt | AC | 3 ms | 768 KB |
subtask_2_23.txt | AC | 3 ms | 640 KB |
subtask_2_24.txt | AC | 3 ms | 768 KB |
subtask_2_25.txt | AC | 3 ms | 512 KB |
subtask_2_26.txt | AC | 3 ms | 640 KB |
subtask_2_27.txt | AC | 4 ms | 640 KB |
subtask_2_3.txt | AC | 87 ms | 9600 KB |
subtask_2_4.txt | AC | 45 ms | 4992 KB |
subtask_2_5.txt | AC | 89 ms | 9600 KB |
subtask_2_6.txt | WA | 88 ms | 9600 KB |
subtask_2_7.txt | AC | 36 ms | 3968 KB |
subtask_2_8.txt | AC | 8 ms | 1536 KB |
subtask_2_9.txt | AC | 24 ms | 3712 KB |
subtask_3_1.txt | WA | 4 ms | 1408 KB |
subtask_3_10.txt | AC | 126 ms | 9600 KB |
subtask_3_11.txt | AC | 126 ms | 9600 KB |
subtask_3_12.txt | AC | 125 ms | 9600 KB |
subtask_3_13.txt | WA | 4 ms | 1664 KB |
subtask_3_14.txt | AC | 7 ms | 4224 KB |
subtask_3_2.txt | WA | 5 ms | 1536 KB |
subtask_3_3.txt | AC | 127 ms | 9600 KB |
subtask_3_4.txt | WA | 126 ms | 9600 KB |
subtask_3_5.txt | WA | 126 ms | 9600 KB |
subtask_3_6.txt | AC | 126 ms | 9600 KB |
subtask_3_7.txt | WA | 122 ms | 9600 KB |
subtask_3_8.txt | WA | 125 ms | 9600 KB |
subtask_3_9.txt | WA | 126 ms | 9600 KB |