Submission #96028

# Submission time Handle Problem Language Result Execution time Memory
96028 2019-02-05T10:09:06 Z JustInCase Osmosmjerka (COCI17_osmosmjerka) C++17
80 / 160
4000 ms 93136 KB
#include <bits/stdc++.h>

const int32_t DELTA_I[] = { -1, -1, 0, 1, 1, 1, 0, -1 };
const int32_t DELTA_J[] = { 0, 1, 1, 1, 0, -1, -1, -1 };

const int32_t MAX_N = 500;
const int32_t MAX_M = 500;

char block[MAX_N + 5][MAX_M + 5];
std::unordered_map< std::string, int32_t > cnt;

int main() {
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(nullptr);

	int32_t n, m, k;
	std::cin >> n >> m >> k;

	for(int32_t i = 0; i < n; i++) {
		for(int32_t j = 0; j < m; j++) {
			std::cin >> block[i][j];			
		}
	}
	
	int32_t totalCnt = 0;
	for(int32_t i = 0; i < n; i++) {
		for(int32_t j = 0; j < m; j++) {
			int32_t currI = i, currJ = j;
			for(int32_t p = 0; p < 8; p++) {
				std::string s = "";
				do {
					s += block[currI][currJ];
					
					currI += DELTA_I[p];
					currJ += DELTA_J[p];

					if(currI < 0) {
						currI += n;
					}
					if(currJ < 0) {
						currJ += m;
					}

					currI %= n;
					currJ %= m;

				} while(s.size() < n + k % n);
				
				totalCnt++;
				cnt[s]++;
			}
		}
	}

	int32_t a = 0, b = totalCnt * totalCnt;
	for(auto &x : cnt) {
		a += x.second * x.second;
	}

	int32_t gcd = std::__gcd(a, b);
	a /= gcd;
	b /= gcd;

	std::cout << a << "/" << b << '\n';
}

Compilation message

osmosmjerka.cpp: In function 'int main()':
osmosmjerka.cpp:47:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     } while(s.size() < n + k % n);
             ~~~~~~~~~^~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 3 ms 504 KB Output is correct
5 Correct 10 ms 760 KB Output is correct
6 Incorrect 201 ms 10428 KB Output isn't correct
7 Incorrect 1602 ms 26460 KB Output isn't correct
8 Execution timed out 4043 ms 93136 KB Time limit exceeded