From 5674d77d91adabd13f90399dba1abe1b7cb86363 Mon Sep 17 00:00:00 2001 From: Bruno Freitas Tissei <bft15@inf.ufpr.br> Date: Fri, 28 Jun 2019 18:00:31 -0300 Subject: [PATCH] Add URI1130 Signed-off-by: Bruno Freitas Tissei <bft15@inf.ufpr.br> --- contests/Cadernaveis/URI1130.cpp | 79 +++++++++++++++++++++++++++++++ contests/SBC16/a.out | Bin 23184 -> 0 bytes 2 files changed, 79 insertions(+) create mode 100644 contests/Cadernaveis/URI1130.cpp delete mode 100755 contests/SBC16/a.out diff --git a/contests/Cadernaveis/URI1130.cpp b/contests/Cadernaveis/URI1130.cpp new file mode 100644 index 0000000..1d02342 --- /dev/null +++ b/contests/Cadernaveis/URI1130.cpp @@ -0,0 +1,79 @@ +#include <bits/stdc++.h> + +#define MAX 10101 +#define EPS 1e-6 +#define MOD 1000000007 +#define inf 0x3f3f3f3f +#define llinf 0x3f3f3f3f3f3f3f3f + +#define fi first +#define se second +#define pb push_back +#define ende '\n' + +#define all(x) (x).begin(), (x).end() +#define rall(x) (x).rbegin(), (x).rend() +#define mset(x, y) memset(&x, (y), sizeof(x)) + +using namespace std; + +using ll = long long; +using ii = pair<int,int>; + +int dp[MAX]; +//int foi[MAX]; + +int solve(int n) { + if (n < 5) + return 0; + if (dp[n] != -1) + return dp[n]; + + vector<int> foi(MAX, 0); + for (int j = 2; j < n - 2; ++j) + foi[solve(j) ^ solve(n - 1 - j)] = 1; + + for (int j = 0; j < MAX; ++j) + if (!foi[j]) { + dp[n] = j; + break; + } + + return dp[n]; +} + +int main() { + ios::sync_with_stdio(0); + cin.tie(0); + + int n; + mset(dp, -1); + while (cin >> n && n) { + string s; cin >> s; + + bool done = false; + for (int i = 1; i < n; ++i) + if (s[i] == 'X' && s[i-1] == 'X') done = true; + for (int i = 2; i < n; ++i) + if (s[i] == 'X' && s[i-2] == 'X') done = true; + + if (done) { + cout << 'S' << ende; + continue; + } + + int ans = 0; + int last = -3; + for (int i = 0; i < n; ++i) { + if (s[i] == 'X') { + ans ^= solve(i-last-1); + last = i; + } + } + + ans ^= solve(n-last+1); + cout << (ans ? 'S' : 'N') << endl; + } + + return 0; +} diff --git a/contests/SBC16/a.out b/contests/SBC16/a.out deleted file mode 100755 index 71cabd06f9608efa44779b2b5837c4fbe534a032..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23184 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 OFW+KFIBg2HsPez73ZJL| -- GitLab