CSES - Harjoituskisa 7.1.2018 - Results
Submission details
Task:Ruudukko
Sender:SeveriK
Submission time:2018-01-07 21:25:27 +0200
Language:C++
Status:READY
Result:17
Feedback
groupverdictscore
#1ACCEPTED17
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.05 s1details
#2ACCEPTED0.05 s1details
#3ACCEPTED0.04 s1details
#4ACCEPTED0.04 s1details
#5ACCEPTED0.04 s1details
#6ACCEPTED0.04 s2details
#7ACCEPTED0.04 s2details
#8ACCEPTED0.05 s2details
#9ACCEPTED0.05 s2details
#100.05 s2details
#110.29 s3details
#120.29 s3details
#130.33 s3details
#140.31 s3details
#150.29 s3details

Code

#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

typedef unsigned int uint;
typedef unsigned long ul;
typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
#define PI 3.1415926535897932384626433

int main()
{
	string output = "";
	uint n = 0, x = 0, y = 0;
	std::cin >> n;
	vector<char> matrix(n * n);

	for (uint i = 0; i < n; i++)
	{
		string curRow = "";
		std::cin >> curRow;
		for (uint o = 0; o < n; o++)
		{
			matrix[o + (n * i)] = curRow[o];
		}
	}

	output += matrix[0];
	for (uint i = 1; i < 2 * n - 1; i++)
	{
		char rightChar = ' ';
		char belowChar = ' ';
		if (x < n - 1 && y < n - 1)
		{
			rightChar = matrix[x + 1 + (n * y)];
			belowChar = matrix[x + (n * (y + 1))];

			vector<char> alphabet = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
			for (uint o = 0; o < 26; o++)
			{
				if (belowChar == alphabet[o] && rightChar == alphabet[o])
				{
					char nextRightChar = ' ';
					char nextBelowChar = ' ';
					char nextRightChar1 = ' ';
					char nextBelowChar1 = ' ';
					if (x < n - 1 && y < n - 1)
					{
						if (x < n - 2)
						{
							nextRightChar = matrix[x + 1 + 1 + (n * y)];
						}
						nextBelowChar = matrix[x + 1 + (n * (y + 1))];

						nextRightChar1 = matrix[x + 1 + (n * y + 1)];
						if (y < n - 2)
						{
							nextBelowChar1 = matrix[x + (n * (y + 1 + 1))];
						}
						for (uint o = 0; o < 26; o++)
						{
							if (nextBelowChar == alphabet[o])
							{
								output += rightChar;
								x++;
								break;
							}
							else if (nextRightChar == alphabet[o])
							{
								output += rightChar;
								x++;
								break;
							}
							else if (nextBelowChar1 == alphabet[o])
							{
								output += belowChar;
								y++;
								break;
							}
							else if (nextRightChar1 == alphabet[o])
							{
								output += belowChar;
								y++;
								break;
							}
						}
					}
				}
				else if (belowChar == alphabet[o])
				{
					output += belowChar;
					y++;
					break;
				}
				else if (rightChar == alphabet[o])
				{
					output += rightChar;
					x++;
					break;
				}
			}
		}
		else if (x >= n - 1)
		{
			belowChar = matrix[x + (n * (y + 1))];
			output += belowChar;
			y++;
		}
		else
		{
			rightChar = matrix[x + 1 + (n * y)];
			output += rightChar;
			x++;
		}
	}

	std::cout << output << "\n";

	int w;
	std::cin >> w;

	return 0;
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
5
ILRBG
SBRHV
PAGKM
YKKNG
...

correct output
ILBAGKMGQ

user output
ILBAGKMGQ

Test 2

Group: 1

Verdict: ACCEPTED

input
5
KQQBB
IWDQN
TENSD
PGXMV
...

correct output
KITEGMIWH

user output
KITEGMIWH

Test 3

Group: 1

Verdict: ACCEPTED

input
5
DSWIO
RWFDY
ISZRK
GBVYS
...

correct output
DRIGBJDLU

user output
DRIGBJDLU

Test 4

Group: 1

Verdict: ACCEPTED

input
5
VGQFP
FTISL
QCLYU
EYNZZ
...

correct output
VFQCLNRZP

user output
VFQCLNRZP

Test 5

Group: 1

Verdict: ACCEPTED

input
5
WCSNV
UWNDB
WDHZA
XGRBQ
...

correct output
WCSNDBAQW

user output
WCSNDBAQW

Test 6

Group: 2

Verdict: ACCEPTED

input
100
WFNOQZOAMZPHFRDYGXQNUPWVMFDNJF...

correct output
WFAHHJDEVFSGGOGMIFDEEDKPSHBBRX...

user output
WFAHHJDEVFSGGOGMIFDEEDKPSHBBRX...

Test 7

Group: 2

Verdict: ACCEPTED

input
100
UEOPTOSBCABXIPUOQRKWKMZRGRZUSS...

correct output
UEGHLIWDHDVKTECPACBJABFMBOASOF...

user output
UEGHLIWDHDVKTECPACBJABFMBOASOF...

Test 8

Group: 2

Verdict: ACCEPTED

input
100
XCKBHDFAPMFZNJANJUENHGXYBBHFJR...

correct output
XCCENJBCBUFBIOJOJDREIBGRUKVRQS...

user output
XCCENJBCBUFBIOJOJDREIBGRUKVRQS...

Test 9

Group: 2

Verdict: ACCEPTED

input
100
YEBXYYLVUDYIHNUMRCUTAYVTNLMEZL...

correct output
YDJNBALIRDOVFBKDDJDFNSSMIDMFRM...

user output
YDJNBALIRDOVFBKDDJDFNSSMIDMFRM...

Test 10

Group: 2

Verdict:

input
100
MVONBCDHJUKRKDGPNYSYGRXBLZOMLD...

correct output
MMSJFIKBSFCUMBBLXJCOUIRAPOKEJS...

user output
MMSJFIKBSFCUMBBLXJCOUIRAPOKEJS...

Test 11

Group: 3

Verdict:

input
2500
LKEFOYQTRZJHADSYBRGQCUDOPMGYOF...

correct output
LDHPNOFPFOCGKPNCEQKANCJCBLGDKC...

user output
LDHPNOFPFOCGKPNCEQKANCJCBLGDKC...

Test 12

Group: 3

Verdict:

input
2500
UGPBLFMZGVIANZLHRTPJIHMUZWOXKA...

correct output
UGLSEBMGHSONFJBGOJJAGBJCLFAHAP...

user output
UGLSEBMGHSONFJBGOJJAGBJCLFAHAP...

Test 13

Group: 3

Verdict:

input
2500
YRUOZBRTLLMMAHNIHQLZHBYCDHTHMS...

correct output
YELLJAAKETHCOWAJNDGJBOFNTCCEDA...

user output
YELLJAAKETHIOQOFREHNGJIKTILOLR...

Test 14

Group: 3

Verdict:

input
2500
RXZEOTVYZBQUOJJFLCJCYCZDONBLUR...

correct output
RTDHUEBGLTKRHKIQLGKILATNHWPIBO...

user output
RTDHUEBGLTKRHKIQLGKILATNHWPIBO...

Test 15

Group: 3

Verdict:

input
2500
IOTRAMNHKWWBVPQPPWTTBHOYDFXPOX...

correct output
IOTQTIDOBFMJBDNOFEFGGIBGAGQBIC...

user output
IOTQTIDOBFMJBDNOFEFGGIBGAGQBIC...