けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

GCJ 2019 Qual B - You Can Go Your Own Way

ちょっと考えればできる

問題へのリンク

問題概要

 N ×  N のグリッドグラフの左上から右下への最短路が 1 つ与えられる。この最短路と辺を共有しない最短路を一つ求めよ (頂点で重なるのは OK)

制約

  •  2 \le N \le 10^{4}

考えたこと

対角線に沿って反転すれば OK

#include <iostream>
#include <sstream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <cstring>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <map>
#include <set>
#include <bitset>
#include <numeric>
#include <utility>
#include <iomanip>
#include <algorithm>
#include <functional>
#include <unordered_map>
using namespace std;

int N;
string S;

void solve() {
    cin >> N >> S;
    string res;
    for (int i = 0; i < S.size(); ++i) {
        if (S[i] == 'E') res += "S";
        else res += "E";
    }
    cout << res << endl;
}

int main() {
    int case_num;
    cin >> case_num;
    for (int CASE = 0; CASE < case_num; ++CASE) {
        cout << "Case #" << CASE + 1 << ": ";
        solve();
    }
}