Submission #1004985
Source Code Expand
#include "bits/stdc++.h" using namespace std; #define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i)) #define rer(i,l,u) for(int (i)=(int)(l);(i)<=(int)(u);++(i)) #define reu(i,l,u) for(int (i)=(int)(l);(i)<(int)(u);++(i)) static const int INF = 0x3f3f3f3f; static const long long INFL = 0x3f3f3f3f3f3f3f3fLL; typedef vector<int> vi; typedef pair<int, int> pii; typedef vector<pair<int, int> > vpii; typedef long long ll; template<typename T, typename U> static void amin(T &x, U y) { if(y < x) x = y; } template<typename T, typename U> static void amax(T &x, U y) { if(x < y) x = y; } template<typename T>T gcd(T x, T y) { if(y == 0)return x; else return gcd(y, x%y); } int nCr_saturated(int n, int k, int infinity) { const int MaxK = 30; if(k > n) return 0; if(k > n / 2) k = n - k; if(k == 0) return 1; assert(0 <= k && k <= MaxK); int factors[MaxK]; rep(i, k) factors[i] = n - i; rep(i, k) { int x = i + 1; rep(j, k) { int g = gcd(factors[j], x); factors[j] /= g; x /= g; } assert(x == 1); } int product = 1; rep(i, k) { long long P = (long long)product * factors[i]; if(P >= infinity) return infinity; else product = (int)P; } return product; } vector<int> trans(const vector<int> &a, int t, bool naive = false) { assert(t >= 0); const int logT = 30; int M = (int)a.size(); vector<int> res = a; if(t <= logT || naive) { rep(k, t) { rep(i, M - 1) amin((res[i + 1] += res[i]), INF); } } else { int X = min(logT, M); rep(i, X) { int sum = 0; for(int j = i; j >= 0; -- j) { int coeff = nCr_saturated((i - j) + t - 1, i - j, INF); long long S = sum + (long long)coeff * a[j]; if(S > INF) { sum = INF; break; } else { sum = (int)S; } } res[i] = sum; } reu(i, X, M) res[i] = INF; } return res; } int solve(const vector<int> &a, const vector<int> &b) { int M = (int)a.size(); if(b < a) return 0; if(b[0] > a[0]) return INF; int t = (b[1] - a[1] + a[0] - 1) / a[0]; vector<int> c = trans(a, t); return b < c ? t : t + 1; } int main() { int N; int M; while(~scanf("%d%d", &N, &M)) { vector<vector<int> > A(N, vector<int>(M)); for(int i = 0; i < N; ++ i) for(int j = 0; j < M; ++ j) scanf("%d", &A[i][j]); if(M == 1) { bool ok = true; rep(i, N - 1) ok &= A[i][0] < A[i + 1][0]; puts(ok ? "-1" : "0"); continue; } vector<int> g(N - 1); bool ok = true; rep(i, N - 1) { int x = solve(A[i + 1], A[i]); if(x == INF) { ok = false; break; } else if(x > 0) { g[i] = x; } else { int y = solve(A[i], A[i + 1]); if(y > 0 && y < INF && trans(A[i], y - 1) == A[i + 1]) -- y; g[i] = -y + 1; } } if(!ok) { puts("-1"); continue; } ll ans = 0; ll curt = 0; rep(i, N - 1) { curt = max(curt + g[i], 0LL); ans += curt; } printf("%lld\n", ans); } return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - Takahashi the Magician |
User | anta |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 2997 Byte |
Status | WA |
Exec Time | 142 ms |
Memory | 4352 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:89:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &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 | AC | 3 ms | 256 KB |
hack_2.txt | AC | 3 ms | 256 KB |
hack_3.txt | AC | 3 ms | 256 KB |
hack_4.txt | WA | 3 ms | 256 KB |
hack_5.txt | AC | 2 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 | 256 KB |
subtask_1_10.txt | AC | 3 ms | 256 KB |
subtask_1_11.txt | AC | 116 ms | 4224 KB |
subtask_1_12.txt | AC | 3 ms | 256 KB |
subtask_1_13.txt | AC | 3 ms | 256 KB |
subtask_1_14.txt | AC | 3 ms | 256 KB |
subtask_1_15.txt | AC | 119 ms | 4224 KB |
subtask_1_16.txt | AC | 123 ms | 4224 KB |
subtask_1_17.txt | AC | 123 ms | 4224 KB |
subtask_1_18.txt | AC | 120 ms | 4352 KB |
subtask_1_19.txt | AC | 3 ms | 256 KB |
subtask_1_2.txt | AC | 3 ms | 256 KB |
subtask_1_20.txt | WA | 3 ms | 256 KB |
subtask_1_3.txt | AC | 3 ms | 256 KB |
subtask_1_4.txt | AC | 3 ms | 256 KB |
subtask_1_5.txt | AC | 3 ms | 256 KB |
subtask_1_6.txt | AC | 3 ms | 256 KB |
subtask_1_7.txt | AC | 3 ms | 256 KB |
subtask_1_8.txt | AC | 118 ms | 4224 KB |
subtask_1_9.txt | AC | 44 ms | 2176 KB |
subtask_2_1.txt | AC | 11 ms | 640 KB |
subtask_2_10.txt | AC | 17 ms | 896 KB |
subtask_2_11.txt | AC | 86 ms | 4224 KB |
subtask_2_12.txt | AC | 86 ms | 4224 KB |
subtask_2_13.txt | AC | 85 ms | 4224 KB |
subtask_2_14.txt | AC | 87 ms | 4224 KB |
subtask_2_15.txt | AC | 3 ms | 256 KB |
subtask_2_16.txt | AC | 84 ms | 4224 KB |
subtask_2_17.txt | AC | 84 ms | 4224 KB |
subtask_2_18.txt | AC | 122 ms | 4224 KB |
subtask_2_19.txt | WA | 3 ms | 256 KB |
subtask_2_2.txt | AC | 83 ms | 4224 KB |
subtask_2_20.txt | AC | 3 ms | 256 KB |
subtask_2_21.txt | AC | 3 ms | 256 KB |
subtask_2_22.txt | AC | 3 ms | 256 KB |
subtask_2_23.txt | AC | 3 ms | 256 KB |
subtask_2_24.txt | AC | 3 ms | 256 KB |
subtask_2_25.txt | AC | 3 ms | 256 KB |
subtask_2_26.txt | AC | 3 ms | 256 KB |
subtask_2_27.txt | AC | 3 ms | 256 KB |
subtask_2_3.txt | AC | 82 ms | 4224 KB |
subtask_2_4.txt | AC | 46 ms | 2176 KB |
subtask_2_5.txt | AC | 89 ms | 4224 KB |
subtask_2_6.txt | AC | 86 ms | 4224 KB |
subtask_2_7.txt | AC | 35 ms | 1792 KB |
subtask_2_8.txt | AC | 7 ms | 512 KB |
subtask_2_9.txt | AC | 21 ms | 1152 KB |
subtask_3_1.txt | AC | 4 ms | 256 KB |
subtask_3_10.txt | AC | 126 ms | 4224 KB |
subtask_3_11.txt | AC | 124 ms | 4224 KB |
subtask_3_12.txt | AC | 122 ms | 4224 KB |
subtask_3_13.txt | AC | 3 ms | 256 KB |
subtask_3_14.txt | WA | 3 ms | 256 KB |
subtask_3_2.txt | AC | 3 ms | 256 KB |
subtask_3_3.txt | AC | 125 ms | 4224 KB |
subtask_3_4.txt | AC | 124 ms | 4224 KB |
subtask_3_5.txt | AC | 124 ms | 4224 KB |
subtask_3_6.txt | AC | 125 ms | 4224 KB |
subtask_3_7.txt | AC | 142 ms | 4224 KB |
subtask_3_8.txt | AC | 128 ms | 4224 KB |
subtask_3_9.txt | AC | 124 ms | 4224 KB |