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
AC × 3
AC × 10
WA × 17
AC × 27
WA × 8
AC × 40
WA × 29
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