CSES - Harjoituskisa 7.1.2018 - Results
Submission details
Task:Ruudukko
Sender:mika
Submission time:2018-01-07 21:17:31 +0200
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.04 s1details
#20.05 s1details
#30.05 s1details
#40.04 s1details
#50.04 s1details
#60.06 s2details
#70.05 s2details
#80.05 s2details
#90.05 s2details
#100.06 s2details
#11--3details
#12--3details
#13--3details
#14--3details
#15--3details

Compiler report

input/code.cpp: In function 'std::vector<std::tuple<int, int, char> > mahdolliset(std::vector<std::basic_string<char> >, int, int)':
input/code.cpp:24:8: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (y < r.size() - 1)
        ^
input/code.cpp:32:8: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (x < r[y].size() - 1)
        ^
input/code.cpp: In function 'void reitti(std::vector<std::basic_string<char> >, std::string&, int, int)':
input/code.cpp:46:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (currentY == r.size() - 1 && currentX == r.size() - 1)
               ^
input/code.cpp:46:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (currentY == r.size() - 1 && currentX == r.size() - 1)
                                           ^
input/code.cpp:55:21: warning: comparison between signed and unsigned integer...

Code

#include <iostream>
#include <vector>
#include <string>
#include <tuple>
#include <cmath>
#include <algorithm>

using namespace std;

int score(char current, char next)
{
	string s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

	if (current == next) return 0;

	return abs((int)current - (int)next);
}

// y   x   char
vector<tuple<int, int, char>> mahdolliset(vector<string> r, int y, int x)
{
	vector<tuple<int, int, char>> v;

	if (y < r.size() - 1)
		// y+1
		v.push_back(make_tuple(y+1, x, r[y+1][x]));

	/*if (y > 1)
		// y-1
		v.push_back(make_tuple(y-1, x, r[y-1][x]));*/

	if (x < r[y].size() - 1)
		// x+1
		v.push_back(make_tuple(y, x+1, r[y][x+1]));

	/*if (x > 1)
		v.push_back(make_tuple(y, x-1, r[y][x-1]));*/

	return v;
}

void reitti(vector<string> r, string& currentPath, int currentY, int currentX)
{
	currentPath += r[currentY][currentX];

	if (currentY == r.size() - 1 && currentX == r.size() - 1)
		return;

	vector<tuple<int, int, char>> v = mahdolliset(r, currentY, currentX);

	if (v.size() > 0)
	{
		int pieninScore = score(r[currentY][currentX], get<2>(v[0]));
		tuple<int, int, char> pienin = v[0];
		for (int i = 0; i < v.size(); i++)
		{
			int y = get<0>(v[i]);
			int x = get<1>(v[i]);
			char c = get<2>(v[i]);

			int sco = score(r[currentY][currentX], c);

			if (sco < pieninScore) {
				pieninScore = sco;
				pienin = v[i];
			}

			//cout << c << ": " << sco << endl;
		}

		int y = get<0>(pienin);
		int x = get<1>(pienin);

		reitti(r, currentPath, y, x);
	}
}

int main()
{
	int n;
	cin >> n;

	vector<string> ruudukko;

	for (int i = 0; i < n; i++)
	{
		string s;
		cin >> s;
		ruudukko.push_back(s);
	}

	vector<tuple<int, int, char>> m = mahdolliset(ruudukko, 1, 1);

	

	string path = ""; //to_string(ruudukko[0][0]);

	reitti(ruudukko, path, 0, 0);

	cout << path << endl;

	system("pause");
	return 0;
}

Test details

Test 1

Group: 1

Verdict:

input
5
ILRBG
SBRHV
PAGKM
YKKNG
...

correct output
ILBAGKMGQ

user output
ILRRHKMGQ

Error:
sh: 1: pause: not found

Test 2

Group: 1

Verdict:

input
5
KQQBB
IWDQN
TENSD
PGXMV
...

correct output
KITEGMIWH

user output
KITPGMIWH

Error:
sh: 1: pause: not found

Test 3

Group: 1

Verdict:

input
5
DSWIO
RWFDY
ISZRK
GBVYS
...

correct output
DRIGBJDLU

user output
DRWSZVYSU

Error:
sh: 1: pause: not found

Test 4

Group: 1

Verdict:

input
5
VGQFP
FTISL
QCLYU
EYNZZ
...

correct output
VFQCLNRZP

user output
VGQILNRZP

Error:
sh: 1: pause: not found

Test 5

Group: 1

Verdict:

input
5
WCSNV
UWNDB
WDHZA
XGRBQ
...

correct output
WCSNDBAQW

user output
WUWXKDVGW

Error:
sh: 1: pause: not found

Test 6

Group: 2

Verdict:

input
100
WFNOQZOAMZPHFRDYGXQNUPWVMFDNJF...

correct output
WFAHHJDEVFSGGOGMIFDEEDKPSHBBRX...

user output
WTTUVLFZYPXPKNNMIIJIOXOUTSPNNL...

Error:
sh: 1: pause: not found

Test 7

Group: 2

Verdict:

input
100
UEOPTOSBCABXIPUOQRKWKMZRGRZUSS...

correct output
UEGHLIWDHDVKTECPACBJABFMBOASOF...

user output
UFGHLIWXHDVMTUIPYYPMQDCGTTFRUU...

Error:
sh: 1: pause: not found

Test 8

Group: 2

Verdict:

input
100
XCKBHDFAPMFZNJANJUENHGXYBBHFJR...

correct output
XCCENJBCBUFBIOJOJDREIBGRUKVRQS...

user output
XJMENMOVVYLUNYPIDTRNIBOVTVWCHD...

Error:
sh: 1: pause: not found

Test 9

Group: 2

Verdict:

input
100
YEBXYYLVUDYIHNUMRCUTAYVTNLMEZL...

correct output
YDJNBALIRDOVFBKDDJDFNSSMIDMFRM...

user output
YEBKBALIRYZKKOOXPQQZWMJORQTFQX...

Error:
sh: 1: pause: not found

Test 10

Group: 2

Verdict:

input
100
MVONBCDHJUKRKDGPNYSYGRXBLZOMLD...

correct output
MMSJFIKBSFCUMBBLXJCOUIRAPOKEJS...

user output
MMSMLIKBSFCUOVFHTLKHWVRIPXYOTR...

Error:
sh: 1: pause: not found

Test 11

Group: 3

Verdict:

input
2500
LKEFOYQTRZJHADSYBRGQCUDOPMGYOF...

correct output
LDHPNOFPFOCGKPNCEQKANCJCBLGDKC...

user output
(empty)

Test 12

Group: 3

Verdict:

input
2500
UGPBLFMZGVIANZLHRTPJIHMUZWOXKA...

correct output
UGLSEBMGHSONFJBGOJJAGBJCLFAHAP...

user output
(empty)

Test 13

Group: 3

Verdict:

input
2500
YRUOZBRTLLMMAHNIHQLZHBYCDHTHMS...

correct output
YELLJAAKETHCOWAJNDGJBOFNTCCEDA...

user output
(empty)

Test 14

Group: 3

Verdict:

input
2500
RXZEOTVYZBQUOJJFLCJCYCZDONBLUR...

correct output
RTDHUEBGLTKRHKIQLGKILATNHWPIBO...

user output
(empty)

Test 15

Group: 3

Verdict:

input
2500
IOTRAMNHKWWBVPQPPWTTBHOYDFXPOX...

correct output
IOTQTIDOBFMJBDNOFEFGGIBGAGQBIC...

user output
(empty)