Submission #115727

#TimeUsernameProblemLanguageResultExecution timeMemory
115727Breno_XDRetro (COCI17_retro)C++14
0 / 100
1088 ms640 KiB
#include <bits/stdc++.h> using namespace std; #define MAX 310 string seq, ans; int r, s, x, y; char v[MAX][MAX]; bool valid(int i, int j){ if(i >= 1 && i <= r+1 && j >= 1 && j <= s)return true; return false; } void dfs(int i, int j){ if(v[i][j] == '*' || (i < 1 && j >= 1 && j <= s)){ stack<char> pilha; bool ok = true; for(int i = 0; i < seq.size(); i++){ if(seq[i] == '('){ pilha.push('('); }else if(seq[i] == ')'){ if(pilha.size() > 0){ pilha.pop(); }else{ ok = false; break; } } } if(pilha.size() > 0) ok = false; if(ok && seq.size() > ans.size()) ans = seq; return; } seq += v[i][j]; if(valid(i-1, j-1)){ int tmp = seq.size(); dfs(i-1, j-1); if(seq.size() > tmp) seq.erase(seq.begin()+seq.size()-1); } if(i-1, j){ int tmp = seq.size(); dfs(i-1, j); if(seq.size() > tmp) seq.erase(seq.begin()+seq.size()-1); } if(valid(i-1, j+1)){ int tmp = seq.size(); dfs(i-1, j+1); if(seq.size() > tmp) seq.erase(seq.begin()+seq.size()-1); } return; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> r >> s; for(int i = 1; i <= r; i++){ for(int j = 1; j <= s; j++){ cin >> v[i][j]; if(v[i][j] == 'M'){ x = i; y = j; } } } dfs(x, y); string ans2 = ""; for(int i = 0; i < ans.size(); i++){ if(ans[i] == '(' || ans[i] == ')'){ ans2 += ans[i]; } } cout << ans2.size() << "\n"; cout << ans2 << "\n"; return 0; }

Compilation message (stderr)

retro.cpp: In function 'void dfs(int, int)':
retro.cpp:22:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i = 0; i < seq.size(); i++){
                        ~~^~~~~~~~~~~~
retro.cpp:46:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if(seq.size() > tmp)
            ~~~~~~~~~~~^~~~~
retro.cpp:49:9: warning: left operand of comma operator has no effect [-Wunused-value]
     if(i-1, j){
        ~^~
retro.cpp:52:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if(seq.size() > tmp)
            ~~~~~~~~~~~^~~~~
retro.cpp:58:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if(seq.size() > tmp)
            ~~~~~~~~~~~^~~~~
retro.cpp: In function 'int main()':
retro.cpp:81:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < ans.size(); i++){
                    ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...