Task: | Mission |
Sender: | Pietari Kaskela |
Submission time: | 2015-10-07 17:11:53 +0300 |
Language: | C++ |
Status: | READY |
Result: | WRONG ANSWER |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.06 s | details |
#2 | ACCEPTED | 0.06 s | details |
#3 | WRONG ANSWER | 0.05 s | details |
#4 | ACCEPTED | 0.06 s | details |
#5 | ACCEPTED | 0.06 s | details |
#6 | ACCEPTED | 0.05 s | details |
#7 | ACCEPTED | 0.06 s | details |
#8 | ACCEPTED | 0.06 s | details |
#9 | ACCEPTED | 0.06 s | details |
#10 | ACCEPTED | 0.05 s | details |
#11 | ACCEPTED | 0.05 s | details |
#12 | ACCEPTED | 0.06 s | details |
#13 | ACCEPTED | 0.06 s | details |
#14 | ACCEPTED | 0.06 s | details |
#15 | ACCEPTED | 0.05 s | details |
#16 | ACCEPTED | 0.05 s | details |
#17 | ACCEPTED | 0.05 s | details |
#18 | ACCEPTED | 0.07 s | details |
#19 | ACCEPTED | 0.06 s | details |
#20 | ACCEPTED | 0.06 s | details |
#21 | ACCEPTED | 0.05 s | details |
#22 | ACCEPTED | 0.07 s | details |
#23 | ACCEPTED | 0.05 s | details |
#24 | ACCEPTED | 0.05 s | details |
#25 | ACCEPTED | 0.05 s | details |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:100:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i = 1; i < ccc.size(); i++){ ^
Code
#include <bits/stdc++.h> #define i64 long long #define u64 unsigned long long #define i32 int #define u32 unsigned int #define pii pair<int, int> #define pll pair<long long, long long> #define defmod 1000000007 using namespace std; int main(){ cin.sync_with_stdio(0); cin.tie(0); int n, m, k; cin >> n >> m >> k; string t[101]; vector<pii> coins; pii sta, end; unordered_map<int, unordered_map<int, int> > id; vector<int> ccc; for(int i = 0; i < n; i++){ cin >> t[i]; for(int j = 0; j < m; j++){ if(t[i][j] == '*'){ coins.push_back({i, j}); id[i][j] = coins.size(); ccc.push_back(id[i][j]); } if(t[i][j] == 'A'){ sta = {i, j}; } if(t[i][j] == 'B'){ end = {i, j}; } } } int ids, ide; coins.push_back(sta); id[sta.first][sta.second] = coins.size(); ids = coins.size(); coins.push_back(end); id[end.first][end.second] = coins.size(); ide = coins.size(); i64 dist[101][101] = {0}; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ if(t[i][j] == '#' || t[i][j] == '.') continue; bool d[101][101] = {0}; queue<pair<pii, i64> > q; q.push({{i, j}, 0}); while(!q.empty()){ int ci = q.front().first.first; int cj = q.front().first.second; i64 di = q.front().second; q.pop(); if(ci >= n || ci < 0 || cj < 0 || cj >= m) continue; if(d[ci][cj]) continue; if(t[ci][cj] == '#') continue; d[ci][cj] = true; dist[id[i][j]][id[ci][cj]] = di; q.push({{ci+1, cj}, di+1}); q.push({{ci-1, cj}, di+1}); q.push({{ci, cj+1}, di+1}); q.push({{ci, cj-1}, di+1}); } for(int ii = 0; ii < n; ii++){ for(int jj = 0; jj < m; jj++){ if(d[ii][jj] == 0) dist[id[i][j]][id[ii][jj]] = 99999999; } } } } coins.pop_back(); coins.pop_back(); if(k == 0){ cout << dist[ids][ide] << endl; return 0; } if(k == 1){ cout << dist[ids][1] + dist[1][ide] << endl; } i64 re = 999999999999LL; do { i64 cu = 0; cu+=dist[ids][ccc[0]]; //cout << "jarjestys: " << endl; //cout << ids << "->" << ccc[0] << " : " << dist[ids][ccc[0]] << endl; for(int i = 1; i < ccc.size(); i++){ cu+=dist[ccc[i-1]][ccc[i]]; //cout << ccc[i-1] << "->" << ccc[i] << " : " << dist[ccc[i-1]][ccc[i-1]] << endl; } //cout << ccc[ccc.size()-1] << "->" << ide << " : " << dist[ccc[ccc.size()-1]][ide] << endl; cu+=dist[ccc[ccc.size()-1]][ide]; re = min(re, cu); } while ( std::next_permutation(ccc.begin(), ccc.end()) ); cout << re << endl; return 0; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
84 87 2 ##############################... |
correct output |
---|
104 |
user output |
---|
104 |
Test 2
Verdict: ACCEPTED
input |
---|
100 100 8 ##############################... |
correct output |
---|
264 |
user output |
---|
264 |
Test 3
Verdict: WRONG ANSWER
input |
---|
26 51 1 ##############################... |
correct output |
---|
48 |
user output |
---|
48 48 |
Test 4
Verdict: ACCEPTED
input |
---|
100 100 8 ##############################... |
correct output |
---|
145 |
user output |
---|
145 |
Test 5
Verdict: ACCEPTED
input |
---|
68 50 7 ##############################... |
correct output |
---|
88 |
user output |
---|
88 |
Test 6
Verdict: ACCEPTED
input |
---|
100 100 8 ##############################... |
correct output |
---|
187 |
user output |
---|
187 |
Test 7
Verdict: ACCEPTED
input |
---|
61 79 6 ##############################... |
correct output |
---|
149 |
user output |
---|
149 |
Test 8
Verdict: ACCEPTED
input |
---|
100 100 8 ##############################... |
correct output |
---|
232 |
user output |
---|
232 |
Test 9
Verdict: ACCEPTED
input |
---|
94 27 6 ########################### ########################### ########################### #############.############# ... |
correct output |
---|
82 |
user output |
---|
82 |
Test 10
Verdict: ACCEPTED
input |
---|
100 100 0 ##############################... |
correct output |
---|
30 |
user output |
---|
30 |
Test 11
Verdict: ACCEPTED
input |
---|
65 100 6 ######.#######################... |
correct output |
---|
233 |
user output |
---|
233 |
Test 12
Verdict: ACCEPTED
input |
---|
100 100 8 ##############################... |
correct output |
---|
209 |
user output |
---|
209 |
Test 13
Verdict: ACCEPTED
input |
---|
75 18 3 ################## ################## ################## ################## ... |
correct output |
---|
72 |
user output |
---|
72 |
Test 14
Verdict: ACCEPTED
input |
---|
100 100 8 ##############################... |
correct output |
---|
196 |
user output |
---|
196 |
Test 15
Verdict: ACCEPTED
input |
---|
62 4 3 ###. #### #### #### ... |
correct output |
---|
44 |
user output |
---|
44 |
Test 16
Verdict: ACCEPTED
input |
---|
100 100 8 ##############################... |
correct output |
---|
231 |
user output |
---|
231 |
Test 17
Verdict: ACCEPTED
input |
---|
15 4 0 ###. .### #### #.#. ... |
correct output |
---|
4 |
user output |
---|
4 |
Test 18
Verdict: ACCEPTED
input |
---|
100 100 8 ##############################... |
correct output |
---|
300 |
user output |
---|
300 |
Test 19
Verdict: ACCEPTED
input |
---|
86 15 2 .########....## #########...... #########...... #########...... ... |
correct output |
---|
88 |
user output |
---|
88 |
Test 20
Verdict: ACCEPTED
input |
---|
100 100 8 ##############################... |
correct output |
---|
288 |
user output |
---|
288 |
Test 21
Verdict: ACCEPTED
input |
---|
51 90 3 ................................. |
correct output |
---|
103 |
user output |
---|
103 |
Test 22
Verdict: ACCEPTED
input |
---|
100 100 8 ................................. |
correct output |
---|
352 |
user output |
---|
352 |
Test 23
Verdict: ACCEPTED
input |
---|
22 91 4 ................................. |
correct output |
---|
128 |
user output |
---|
128 |
Test 24
Verdict: ACCEPTED
input |
---|
100 100 8 ................................. |
correct output |
---|
317 |
user output |
---|
317 |
Test 25
Verdict: ACCEPTED
input |
---|
49 42 6 ................................. |
correct output |
---|
175 |
user output |
---|
175 |