# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
277370 | 2020-08-21T04:56:12 Z | 임성재(#5118) | Travelling Salesperson (CCO20_day2problem1) | C++17 | 1 ms | 384 KB |
#include<bits/stdc++.h> using namespace std; #define fast ios::sync_with_stdio(false); cin.tie(0); #define fi first #define se second #define em emplace #define eb emplace_back #define mp make_pair #define all(v) (v).begin(), (v).end() typedef long long ll; typedef pair<int,int> pii; typedef pair<ll,ll> pll; const int inf = 1e9; const ll INF = 1e18; int n; int g[2010][2010]; int cnt[2010]; vector<int> ans; int main() { fast; cin >> n; for(int i=2; i<=n; i++) { string s; cin >> s; for(int j=1; j<i; j++) { g[i][j] = g[j][i] = (s[j-1] == 'R') + 1; } } ans.eb(1); int m = 1; for(int i=2; i<=n; i++) { vector<int> v; for(int j=0; j<i-1; j++) { if(ans[j] == m) { if(g[m][i] == 1) { v.eb(m); v.eb(i); if(j+1 < ans.size() && g[i][ans[j+1]] == 1) m = ans[j+1]; else m = i; } else { v.eb(i); v.eb(m); if(j-1 >= 0 && g[i][ans[j-1]] == 2) m = ans[j-1]; else m = i; } } else v.eb(ans[j]); } ans = v; } cout << n << "\n"; for(auto i : ans) { cout << i << " "; } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 384 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |