Submission #774185

# Submission time Handle Problem Language Result Execution time Memory
774185 2023-07-05T12:46:11 Z shoryu386 Mobitel (COCI19_mobitel) C++17
52 / 130
4498 ms 65536 KB
#include <bits/stdc++.h>
using namespace std;

#define MAX 307
#define MOD 1000000007
int r, c, n;
map<int, int> smolbrain[MAX][MAX];
int arr[MAX][MAX];

inline int submod(int reeee){
	if (reeee >= MOD) return reeee-MOD;
	else return reeee;
}


main(){
	cin >> r >> c >> n;
	
	for (int x = 0; x < r; x++){ for (int y = 0; y < c; y++) cin >> arr[x][y];}
	
	smolbrain[0][0][arr[0][0]] = 1;
	
	int cringe[MAX][MAX];
	for (int x = 0; x < r; x++) cringe[x][0] = 1;
	for (int x = 0; x < c; x++) cringe[0][x] = 1;
	for (int y = 1; y < r; y++){
		for (int x = 1; x < c; x++){
			cringe[y][x] = submod(cringe[y-1][x] + cringe[y][x-1]);
		}
	}
	
	for (int y = 0; y < r; y++){
		for (int x = 0; x < c; x++){
			if (y < r-1){
				for (auto i : smolbrain[y][x]){
					if ((long long)i.first * (long long)arr[y+1][x] < n) smolbrain[y+1][x][ i.first * arr[y+1][x] ] = submod(smolbrain[y+1][x][ i.first * arr[y+1][x] ] + i.second); 
				}
			}
			
			if (x < c-1){
				for (auto i : smolbrain[y][x]){
					if ((long long)i.first * (long long)arr[y][x+1] < n) smolbrain[y][x+1][ i.first * arr[y][x+1] ] = submod(smolbrain[y][x+1][ i.first * arr[y][x+1] ] + i.second); 
				}
			}
			
			if (y != r-1 || x != c-1) smolbrain[y][x].clear();
		}
	}
	
	/*
	for (int y = 0; y < r; y++){
		for (int x = 0; x < c; x++){
			cout << "DEBUG FOR " << y << ' ' << x << '\n';
			for (auto i : smolbrain[y][x]){
				cout << i.first << ' ' << i.second << '\n';
			}
		}
	}
	*/
	
	int presum = 0;
	for (auto i : smolbrain[r-1][c-1]){
		presum = submod(presum + i.second);
	}
	
	cout << (cringe[r-1][c-1] - presum + MOD)%MOD;
}

Compilation message

mobitel.cpp:16:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   16 | main(){
      | ^~~~
# Verdict Execution time Memory Grader output
1 Correct 1483 ms 7520 KB Output is correct
2 Correct 1593 ms 7636 KB Output is correct
3 Correct 1852 ms 10104 KB Output is correct
4 Correct 1918 ms 10232 KB Output is correct
5 Runtime error 1654 ms 65536 KB Execution killed with signal 9
6 Runtime error 2714 ms 65536 KB Execution killed with signal 9
7 Runtime error 4498 ms 65536 KB Execution killed with signal 9
8 Runtime error 635 ms 65536 KB Execution killed with signal 9
9 Runtime error 575 ms 65536 KB Execution killed with signal 9
10 Runtime error 589 ms 65536 KB Execution killed with signal 9