# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
622668 | gromperen | Travelling Salesperson (CCO20_day2problem1) | C++14 | 439 ms | 24144 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int MAXN =2e3+5;
char a[MAXN][MAXN];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int n; cin >> n;
for (int i =1 ; i <= n; ++i) {
for (int j = 1; j < i; ++j) {
cin >> a[i][j];
a[j][i] = a[i][j];
}
}
for (int s = 1; s <= n; s++) {
vector<int> red, blue;
for (int i = 1; i <= n+1; ++i) {
if (i == s) continue;
if (i == n+1) i = s;
if (red.empty() || a[red.back()][i] == 'R') {
red.push_back(i);
} else if (blue.empty() || a[blue.back()][i] == 'B') {
blue.push_back(i);
} else if (a[red.back()][blue.back()] == 'R') {
red.push_back(blue.back());
blue.pop_back();
red.push_back(i);
} else {
blue.push_back(red.back());
red.pop_back();
blue.push_back(i);
}
if (i == s) i = n+1;
}
if (!blue.empty() && blue.back() == s) swap(red,blue);
cout << n << "\n";
reverse(red.begin(), red.end());
for (int i : red) cout << i << " ";
for (int i : blue) cout << i << " ";
cout << "\n";
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |