Task: | Ruudukko |
Sender: | Olli |
Submission time: | 2018-01-07 20:31:58 +0200 |
Language: | C++ |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 17 |
#2 | ACCEPTED | 42 |
#3 | ACCEPTED | 41 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.04 s | 1 | details |
#2 | ACCEPTED | 0.04 s | 1 | details |
#3 | ACCEPTED | 0.04 s | 1 | details |
#4 | ACCEPTED | 0.03 s | 1 | details |
#5 | ACCEPTED | 0.04 s | 1 | details |
#6 | ACCEPTED | 0.04 s | 2 | details |
#7 | ACCEPTED | 0.06 s | 2 | details |
#8 | ACCEPTED | 0.05 s | 2 | details |
#9 | ACCEPTED | 0.04 s | 2 | details |
#10 | ACCEPTED | 0.04 s | 2 | details |
#11 | ACCEPTED | 0.33 s | 3 | details |
#12 | ACCEPTED | 0.30 s | 3 | details |
#13 | ACCEPTED | 0.28 s | 3 | details |
#14 | ACCEPTED | 0.28 s | 3 | details |
#15 | ACCEPTED | 0.27 s | 3 | details |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:34:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j = 0; j < best[sum - 1].size(); ++j) { ^ input/code.cpp:57:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j = 0; j < best[sum - 1].size(); ++j) { ^
Code
#include <iostream> #include <fstream> #include <vector> using namespace std; const int N = 2525; char board[N][N]; vector<pair<int, int> > best[2*N]; bool added[N][N]; int main() { //ifstream in; //in.open("input.in"); int n; cin >> n; for(int y = 1; y <= n; ++y) { string s; cin >> s; for(int x = 0; x < n; ++x) { board[y][x+1] = s[x]; } } string curString = ""; curString += board[1][1]; best[2].push_back(make_pair(1, 1)); for(int sum = 3; sum <= 2*n; ++sum) { int curBestNum = 99999; for(int j = 0; j < best[sum - 1].size(); ++j) { int x = best[sum-1][j].second; int y = best[sum-1][j].first; if(x == n) { char abba = board[y+1][x]; int cd = (int) abba; curBestNum = min(curBestNum, cd); } else if(y == n) { char abba = board[y][x+1]; int cd = (int) abba; curBestNum = min(curBestNum, cd); } else { char abba = board[y+1][x]; int cd = (int) abba; char aaaa = board[y][x+1]; int bbbb = (int) aaaa; int cur = min(cd, bbbb); curBestNum = min(curBestNum, cur); } } char a = (int) curBestNum; curString += a; for(int j = 0; j < best[sum - 1].size(); ++j) { int x = best[sum-1][j].second; int y = best[sum-1][j].first; if(x == n) { char abba = board[y+1][x]; int cd = (int) abba; if(cd == curBestNum && !added[y+1][x]) { best[sum].push_back(make_pair(y+1, x)); added[y+1][x] = true; } } else if(y == n) { char abba = board[y][x+1]; int cd = (int) abba; if(cd == curBestNum && !added[y][x+1]) { best[sum].push_back(make_pair(y, x+1)); added[y][x+1] = true; } } else { char abba = board[y+1][x]; int cd = (int) abba; if(cd == curBestNum && !added[y+1][x]) { best[sum].push_back(make_pair(y+1, x)); added[y+1][x] = true; } abba = board[y][x+1]; cd = (int) abba; if(cd == curBestNum && !added[y][x+1]) { best[sum].push_back(make_pair(y, x+1)); added[y][x+1] = true; } } } } cout << curString << "\n"; }
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: ACCEPTED
input |
---|
100 MVONBCDHJUKRKDGPNYSYGRXBLZOMLD... |
correct output |
---|
MMSJFIKBSFCUMBBLXJCOUIRAPOKEJS... |
user output |
---|
MMSJFIKBSFCUMBBLXJCOUIRAPOKEJS... |
Test 11
Group: 3
Verdict: ACCEPTED
input |
---|
2500 LKEFOYQTRZJHADSYBRGQCUDOPMGYOF... |
correct output |
---|
LDHPNOFPFOCGKPNCEQKANCJCBLGDKC... |
user output |
---|
LDHPNOFPFOCGKPNCEQKANCJCBLGDKC... |
Test 12
Group: 3
Verdict: ACCEPTED
input |
---|
2500 UGPBLFMZGVIANZLHRTPJIHMUZWOXKA... |
correct output |
---|
UGLSEBMGHSONFJBGOJJAGBJCLFAHAP... |
user output |
---|
UGLSEBMGHSONFJBGOJJAGBJCLFAHAP... |
Test 13
Group: 3
Verdict: ACCEPTED
input |
---|
2500 YRUOZBRTLLMMAHNIHQLZHBYCDHTHMS... |
correct output |
---|
YELLJAAKETHCOWAJNDGJBOFNTCCEDA... |
user output |
---|
YELLJAAKETHCOWAJNDGJBOFNTCCEDA... |
Test 14
Group: 3
Verdict: ACCEPTED
input |
---|
2500 RXZEOTVYZBQUOJJFLCJCYCZDONBLUR... |
correct output |
---|
RTDHUEBGLTKRHKIQLGKILATNHWPIBO... |
user output |
---|
RTDHUEBGLTKRHKIQLGKILATNHWPIBO... |
Test 15
Group: 3
Verdict: ACCEPTED
input |
---|
2500 IOTRAMNHKWWBVPQPPWTTBHOYDFXPOX... |
correct output |
---|
IOTQTIDOBFMJBDNOFEFGGIBGAGQBIC... |
user output |
---|
IOTQTIDOBFMJBDNOFEFGGIBGAGQBIC... |