QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#755413 | #9558. The Devil | ucup-team3586# | TL | 4619ms | 304328kb | C++23 | 14.9kb | 2024-11-16 17:16:36 | 2024-11-16 17:17:57 |
Judging History
answer
#include<bits/stdc++.h>
//ATCoder Lib
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native")
namespace atcoder {
namespace internal {
template <class T> struct simple_queue {
std::vector<T> payload;
int pos = 0;
void reserve(int n) { payload.reserve(n); }
int size() const { return int(payload.size()) - pos; }
bool empty() const { return pos == int(payload.size()); }
void push(const T& t) { payload.push_back(t); }
T& front() { return payload[pos]; }
void clear() {
payload.clear();
pos = 0;
}
void pop() { pos++; }
};
template <class E> struct csr {
std::vector<int> start;
std::vector<E> elist;
explicit csr(int n, const std::vector<std::pair<int, E>>& edges)
: start(n + 1), elist(edges.size()) {
for (auto e : edges) {
start[e.first + 1]++;
}
for (int i = 1; i <= n; i++) {
start[i] += start[i - 1];
}
auto counter = start;
for (auto e : edges) {
elist[counter[e.first]++] = e.second;
}
}
};
} // namespace internal
template <class Cap, class Cost> struct mcf_graph {
public:
mcf_graph() {}
explicit mcf_graph(int n) : _n(n) {}
int add_edge(int from, int to, Cap cap, Cost cost) {
assert(0 <= from && from < _n);
assert(0 <= to && to < _n);
assert(0 <= cap);
assert(0 <= cost);
int m = int(_edges.size());
_edges.push_back({from, to, cap, 0, cost});
return m;
}
struct edge {
int from, to;
Cap cap, flow;
Cost cost;
};
edge get_edge(int i) {
int m = int(_edges.size());
assert(0 <= i && i < m);
return _edges[i];
}
std::vector<edge> edges() { return _edges; }
std::pair<Cap, Cost> flow(int s, int t) {
return flow(s, t, std::numeric_limits<Cap>::max());
}
std::pair<Cap, Cost> flow(int s, int t, Cap flow_limit) {
return slope(s, t, flow_limit).back();
}
std::vector<std::pair<Cap, Cost>> slope(int s, int t) {
return slope(s, t, std::numeric_limits<Cap>::max());
}
std::vector<std::pair<Cap, Cost>> slope(int s, int t, Cap flow_limit) {
assert(0 <= s && s < _n);
assert(0 <= t && t < _n);
assert(s != t);
int m = int(_edges.size());
std::vector<int> edge_idx(m);
auto g = [&]() {
std::vector<int> degree(_n), redge_idx(m);
std::vector<std::pair<int, _edge>> elist;
elist.reserve(2 * m);
for (int i = 0; i < m; i++) {
auto e = _edges[i];
edge_idx[i] = degree[e.from]++;
redge_idx[i] = degree[e.to]++;
elist.push_back({e.from, {e.to, -1, e.cap - e.flow, e.cost}});
elist.push_back({e.to, {e.from, -1, e.flow, -e.cost}});
}
auto _g = internal::csr<_edge>(_n, elist);
for (int i = 0; i < m; i++) {
auto e = _edges[i];
edge_idx[i] += _g.start[e.from];
redge_idx[i] += _g.start[e.to];
_g.elist[edge_idx[i]].rev = redge_idx[i];
_g.elist[redge_idx[i]].rev = edge_idx[i];
}
return _g;
}();
auto result = slope(g, s, t, flow_limit);
for (int i = 0; i < m; i++) {
auto e = g.elist[edge_idx[i]];
_edges[i].flow = _edges[i].cap - e.cap;
}
return result;
}
private:
int _n;
std::vector<edge> _edges;
// inside edge
struct _edge {
int to, rev;
Cap cap;
Cost cost;
};
std::vector<std::pair<Cap, Cost>> slope(internal::csr<_edge>& g,
int s,
int t,
Cap flow_limit) {
// variants (C = maxcost):
// -(n-1)C <= dual[s] <= dual[i] <= dual[t] = 0
// reduced cost (= e.cost + dual[e.from] - dual[e.to]) >= 0 for all edge
// dual_dist[i] = (dual[i], dist[i])
std::vector<std::pair<Cost, Cost>> dual_dist(_n);
std::vector<int> prev_e(_n);
std::vector<bool> vis(_n);
struct Q {
Cost key;
int to;
bool operator<(Q r) const { return key > r.key; }
};
std::vector<int> que_min;
std::vector<Q> que;
auto dual_ref = [&]() {
for (int i = 0; i < _n; i++) {
dual_dist[i].second = std::numeric_limits<Cost>::max();
}
std::fill(vis.begin(), vis.end(), false);
que_min.clear();
que.clear();
// que[0..heap_r) was heapified
size_t heap_r = 0;
dual_dist[s].second = 0;
que_min.push_back(s);
while (!que_min.empty() || !que.empty()) {
int v;
if (!que_min.empty()) {
v = que_min.back();
que_min.pop_back();
} else {
while (heap_r < que.size()) {
heap_r++;
std::push_heap(que.begin(), que.begin() + heap_r);
}
v = que.front().to;
std::pop_heap(que.begin(), que.end());
que.pop_back();
heap_r--;
}
if (vis[v]) continue;
vis[v] = true;
if (v == t) break;
// dist[v] = shortest(s, v) + dual[s] - dual[v]
// dist[v] >= 0 (all reduced cost are positive)
// dist[v] <= (n-1)C
Cost dual_v = dual_dist[v].first, dist_v = dual_dist[v].second;
for (int i = g.start[v]; i < g.start[v + 1]; i++) {
auto e = g.elist[i];
if (!e.cap) continue;
// |-dual[e.to] + dual[v]| <= (n-1)C
// cost <= C - -(n-1)C + 0 = nC
Cost cost = e.cost - dual_dist[e.to].first + dual_v;
if (dual_dist[e.to].second - dist_v > cost) {
Cost dist_to = dist_v + cost;
dual_dist[e.to].second = dist_to;
prev_e[e.to] = e.rev;
if (dist_to == dist_v) {
que_min.push_back(e.to);
} else {
que.push_back(Q{dist_to, e.to});
}
}
}
}
if (!vis[t]) {
return false;
}
for (int v = 0; v < _n; v++) {
if (!vis[v]) continue;
// dual[v] = dual[v] - dist[t] + dist[v]
// = dual[v] - (shortest(s, t) + dual[s] - dual[t]) +
// (shortest(s, v) + dual[s] - dual[v]) = - shortest(s,
// t) + dual[t] + shortest(s, v) = shortest(s, v) -
// shortest(s, t) >= 0 - (n-1)C
dual_dist[v].first -= dual_dist[t].second - dual_dist[v].second;
}
return true;
};
Cap flow = 0;
Cost cost = 0, prev_cost_per_flow = -1;
std::vector<std::pair<Cap, Cost>> result = {{Cap(0), Cost(0)}};
while (flow < flow_limit) {
if (!dual_ref()) break;
Cap c = flow_limit - flow;
for (int v = t; v != s; v = g.elist[prev_e[v]].to) {
c = std::min(c, g.elist[g.elist[prev_e[v]].rev].cap);
}
for (int v = t; v != s; v = g.elist[prev_e[v]].to) {
auto& e = g.elist[prev_e[v]];
e.cap += c;
g.elist[e.rev].cap -= c;
}
Cost d = -dual_dist[s].first;
flow += c;
cost += c * d;
if (prev_cost_per_flow == d) {
result.pop_back();
}
result.push_back({flow, cost});
prev_cost_per_flow = d;
}
return result;
}
};
}
namespace atcoder {
template <class Cap> struct mf_graph {
public:
mf_graph() : _n(0) {}
explicit mf_graph(int n) : _n(n), g(n) {}
int add_edge(int from, int to, Cap cap) {
assert(0 <= from && from < _n);
assert(0 <= to && to < _n);
assert(0 <= cap);
// printf("%d %d %d\n",from,to,cap);
int m = int(pos.size());
pos.push_back({from, int(g[from].size())});
int from_id = int(g[from].size());
int to_id = int(g[to].size());
if (from == to) to_id++;
g[from].push_back(_edge{to, to_id, cap});
g[to].push_back(_edge{from, from_id, 0});
return m;
}
struct edge {
int from, to;
Cap cap, flow;
};
edge get_edge(int i) {
int m = int(pos.size());
assert(0 <= i && i < m);
auto _e = g[pos[i].first][pos[i].second];
auto _re = g[_e.to][_e.rev];
return edge{pos[i].first, _e.to, _e.cap + _re.cap, _re.cap};
}
std::vector<edge> edges() {
int m = int(pos.size());
std::vector<edge> result;
for (int i = 0; i < m; i++) {
result.push_back(get_edge(i));
}
return result;
}
void change_edge(int i, Cap new_cap, Cap new_flow) {
int m = int(pos.size());
assert(0 <= i && i < m);
assert(0 <= new_flow && new_flow <= new_cap);
auto& _e = g[pos[i].first][pos[i].second];
auto& _re = g[_e.to][_e.rev];
_e.cap = new_cap - new_flow;
_re.cap = new_flow;
}
Cap flow(int s, int t) {
return flow(s, t, std::numeric_limits<Cap>::max());
}
Cap flow(int s, int t, Cap flow_limit) {
assert(0 <= s && s < _n);
assert(0 <= t && t < _n);
assert(s != t);
std::vector<int> level(_n), iter(_n);
internal::simple_queue<int> que;
auto bfs = [&]() {
std::fill(level.begin(), level.end(), -1);
level[s] = 0;
que.clear();
que.push(s);
while (!que.empty()) {
int v = que.front();
que.pop();
for (auto e : g[v]) {
if (e.cap == 0 || level[e.to] >= 0) continue;
level[e.to] = level[v] + 1;
if (e.to == t) return;
que.push(e.to);
}
}
};
auto dfs = [&](auto self, int v, Cap up) {
if (v == s) return up;
Cap res = 0;
int level_v = level[v];
for (int& i = iter[v]; i < int(g[v].size()); i++) {
_edge& e = g[v][i];
if (level_v <= level[e.to] || g[e.to][e.rev].cap == 0) continue;
Cap d =
self(self, e.to, std::min(up - res, g[e.to][e.rev].cap));
if (d <= 0) continue;
g[v][i].cap += d;
g[e.to][e.rev].cap -= d;
res += d;
if (res == up) return res;
}
level[v] = _n;
return res;
};
Cap flow = 0;
while (flow < flow_limit) {
bfs();
if (level[t] == -1) break;
std::fill(iter.begin(), iter.end(), 0);
Cap f = dfs(dfs, t, flow_limit - flow);
if (!f) break;
flow += f;
}
return flow;
}
std::vector<bool> min_cut(int s) {
std::vector<bool> visited(_n);
internal::simple_queue<int> que;
que.push(s);
while (!que.empty()) {
int p = que.front();
que.pop();
visited[p] = true;
for (auto e : g[p]) {
if (e.cap && !visited[e.to]) {
visited[e.to] = true;
que.push(e.to);
}
}
}
return visited;
}
private:
int _n;
struct _edge {
int to, rev;
Cap cap;
};
std::vector<std::pair<int, int>> pos;
std::vector<std::vector<_edge>> g;
};
}
using namespace atcoder;
using namespace std;
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
string curtoken,a[1<<20];
int len;
bool readtoken()
{
curtoken="";
char c=getchar();
while(!islower(c)&&!isupper(c)) c=getchar();
while(1)
{
if(islower(c)||isupper(c)) curtoken+=c;
else if(c==' ')
{
a[++len]=curtoken;
return 1;
}
else
{
a[++len]=curtoken;
return 0;
}c=getchar();
}
}
int n=read(),m=n+2;
mcf_graph<int,int> G(1e6);
map<string,int> mp;
int S=n+1,T=n+2;
string arr[100003];
int tr[1<<23][52],dep[1<<23],fa[1<<23],cnt;
char fr[1<<23];
string ans[1003];
int instrans(int x,char c)
{
int o=c-'a';
if(isupper(c)) o=c-'A'+26;
if(!tr[x][o]) tr[x][o]=++cnt,fr[cnt]=c,
dep[cnt]=dep[x]+1,fa[cnt]=x;
return tr[x][o];
}
int Hash(int pt)
{
string s;
while(pt>1)
{
s.push_back(fr[pt]);
pt=fa[pt];
}
reverse(s.begin(),s.end());
if(!mp.count(s))
{
mp[s]=++m;
arr[m]=s;
G.add_edge(m,T,1,s.size());
}
return mp[s];
}
vector<int> nodes[133][258];
int last[1<<23],curver;
signed main()
{
for(int i=1; i<=n; ++i)
G.add_edge(S,i,1,0);
// puts("QAQ");
for(int id=1; id<=n; ++id)
{
for(int j=1; j<=cnt; ++j)
memset(tr[j],0,sizeof(tr[j]));
cnt=1;
// sz=0;
len=0;
while(readtoken());
for(int j=1; j<=len+1; ++j)
for(int k=0; k<=256; ++k)
nodes[j][k].clear();
nodes[1][0].push_back(1);
for(int j=1; j<=len+1; ++j)
{
++curver;
int remain=128;
for(int k=0; remain&&k<=256; ++k)
{
for(int l:nodes[j][k])
{
// printf("node %d\n",l);
int o=l;
if(last[o]!=curver)
{
last[o]=curver;
}
else continue;
if(j==len+1)
{
// printf("%d %d\n",id,o);
G.add_edge(id,Hash(o),1,0);
}
else{
for(char ii:a[j])
{
// i.cur.push_back(ii);
o=instrans(o,ii);
if(dep[o]<=256)
nodes[j+1][dep[o]].push_back(o);
else break;
}}
--remain;
if(remain==0) break;
}
}
}
}
// return 0;
// printf("%d\n",m);
auto [flow,cost]=G.flow(S,T);
// printf("%d\n",cost);
// printf("%d\n",flow);
if(flow!=n) puts("no solution"),exit(0);
auto it=G.edges();
for(auto i:it)
if(i.to>n+2&&i.flow)
ans[i.from]=arr[i.to];
for(int i=1; i<=n; ++i)
cout<<ans[i]<<endl;
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 24ms
memory: 59112kb
input:
5 automated teller machine active teller machine active trouble maker always telling misinformation American Teller Machinery
output:
autm actm atrm atm ATM
result:
ok len=18
Test #2:
score: 0
Accepted
time: 31ms
memory: 57708kb
input:
5 Forest Conservation Committee Forum Fuming Corruption Collusion Federation Fulsome Cash Concealment Foundation Funky Crony Capitalism Facilitator Funny Cocky Cocky Funny
output:
FoCCF FuCCF FCaCF FCrCF FCCF
result:
ok len=24
Test #3:
score: 0
Accepted
time: 16ms
memory: 58208kb
input:
3 A AA AA A A A A
output:
no solution
result:
ok len=-1
Test #4:
score: 0
Accepted
time: 16ms
memory: 58184kb
input:
2 QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnmertyuiop Q W E R T Y U I O P A S D F G H J K L Z X C V B N M q w e r t y u i o p a s d f g h j k l z x c v b n m j k l z x c v b n m
output:
Q QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnmjklzxcvbnm
result:
ok len=63
Test #5:
score: 0
Accepted
time: 49ms
memory: 58308kb
input:
10 aaa aaa aaa aaa aaa aaa aab aaa aaa aaa aaa aaa aaa aab aaa aaa aaa aaa aab aab aaa aaa aaa aaa a a a a a a ab ab a a a a a a ab ab b a a a a a a aw a a a a a az az a a a a az a a a a a
output:
aaaaaaaaa aabaaaaa aaabaaaa aaaaaaa aaaaaa aaaaaaaa aabaaaaaa awaaaaa aazaaaa azaaaaa
result:
ok len=76
Test #6:
score: 0
Accepted
time: 1536ms
memory: 69164kb
input:
128 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
output:
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
result:
ok len=24512
Test #7:
score: 0
Accepted
time: 1581ms
memory: 74320kb
input:
128 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaae aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb cccccccccccccccccccccccccccccccccccccccccc...
result:
ok len=16534
Test #8:
score: 0
Accepted
time: 2082ms
memory: 71616kb
input:
128 zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
output:
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz zAzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz zAAzzzzzzzzz...
result:
ok len=17624
Test #9:
score: 0
Accepted
time: 644ms
memory: 71852kb
input:
128 abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a...
output:
abaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb cdcccccccccccccccccccccccccccccccccccccc...
result:
ok len=16460
Test #10:
score: 0
Accepted
time: 1819ms
memory: 79656kb
input:
128 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc cccccccccccccccccccccccccccccccccccccccccc...
result:
ok len=16384
Test #11:
score: 0
Accepted
time: 261ms
memory: 279684kb
input:
10 AoenrfWTxhAiSipaV cJGloMoCBombqBsVuorNWL gqrmsIZGthdBIvNPWjTGgssBfbctzPCvCmMJWN MDYvQBZCaCmwSFnvQOmolkTmwWgysKuVmByj EOwjzBEgECXizqAZukRFAxdvrRhsGcIzQsFUMcXw mVNxPkaPPKUZEpswrhOqJerzhvfVwcNoDceNZPaskxTEhlGCMIoSqvAg JCPAAkYZoGOxpFNCj tsNvJHyeVCZqOHKzVsLoMnprENEmGSSxFGDDOafIIMVAbUtUIkAqmnrXUnWWfkAl...
output:
AcgMEmJtQnptFcoksenMLQXoWgmMEMuxBJYTcICgaVNaTfoyuAvDOAnedNDDPPPwIGaDOnjIlUvbJTVVQFLk HvApbVGYRBPuNjNkipYlWgO ScgzHNitvtRoLuUisITjuWCLGelWKqYoIAnAmIWTLOeMVHndqytXTd UBSuhtoimhfhdKivdyCqJxSbtnocRCEKicArQJKnRagqrJfNHY WqlPqHsSnpHcIfqCalIrqubIpBXqTVRBOYYQqRCQqJzyHRbbSCLzxsXOzNxSxSXcPhfHkNKClKWBJbg iLqfr...
result:
ok len=660
Test #12:
score: 0
Accepted
time: 1381ms
memory: 301740kb
input:
64 AQLPmEKRHtLKaVeVgUBkYfECFrvhbsXorapjINwkXhyCmkexRIVAZTsXaOihheHjstls AiIegrwbTMbBFdDQHGMgyOahunXRrySnKEmfKXQkpWdtNpGdgdBtPGfdcdnUvEqkfmvmSRzevtZkhPzjhDhTVLQCbaozNEXlqUgHeRshchY SFwbzOhRAEybYCGswuldoWkKloHghqiDybxtJPdzAWjmqxw mcRhokiMnxgAucSnasFcEXpZdEGEGzEGaEBAfGNEQAgQSTFKrMvxoUZTDKQMHksaciHoYXih...
output:
AASmGWIMEJjHHnPlYRcjfOMPuKTjbyRxHmnMcJSXFigHUqxClyINhlMPJgLAZRXFEOGWcCIQvqaYBIhOPkeUVWKHJYow CJenkhWcPeucbfOFBHxSdYqLgftApMsctvFlfKkZmavIfqWYNZpZKJKYPwMSuvaSubelMSQKFIymAZoMLIOqoHGlIbOAp CejoeafHpVdTXKhgDGCAFivwKoSTwwBUDBdXYMWNlUBUttHXemMOHwlBiaqRUwYTIPqJvpowUFTSkqyAywInGlWgMfYXuFrw DkivKkaYITyXOOVF...
result:
ok len=3658
Test #13:
score: 0
Accepted
time: 4619ms
memory: 304328kb
input:
128 kfiaaudafulirmameczaaaaaaaaaaaaaaaaaaaaaaaaagaaaajaaaaaalaaqoaaa f i a a u d a f u l i r m a m e c z a a a a a a a a a a a a a a a a a a a a a a a a a g a a a a j a a a a a a l a a q o a a a aaaoqaalaaaaaajaaaagaaaaaaaaaaaaaaaaaaaaaaaaazcemamrilufaduaaifk a a o q a a l a a a a a a j a a a a g a ...
output:
kfiaaudafulirmameczaaaaaaaaaaaaaaaaaaaaaaaaagaaaajaaaaaalaaqoaaa aaaoqaalaaaaaajaaaagaaaaaaaaaaaaaaaaaaaaaaaaazcemamrilufaduaaifk aoajcnjaaicamaaaahyaaaaaaaaaaaaaaaaaaaaaaaaabaazasvaeaavcaaaajak kajaaaacvaaeavsazaabaaaaaaaaaaaaaaaaaaaaaaaaayhaaaamaciaajncjaoa akkggaaaaumaiwaqawgaaaaaaaaaaaaaaaaaaaaa...
result:
ok len=14640
Test #14:
score: 0
Accepted
time: 815ms
memory: 67952kb
input:
128 a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaZ a aaaaaaaaaaaaaaaZ aaaaaaaaaaaaab aaaaaaaaaaaaab aaaaaaaaaaaaaaaZ aaaaaaaaaaaaab a aaaaaaaaaaaaaz aaaaaaaaaaaaaaaZ aaaaaaaaaaaaab aaaaaaaaaaaaaz a aaaaaaaaaaaaab aaaaaaaaaaa...
output:
aaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa...
result:
ok len=17957
Test #15:
score: 0
Accepted
time: 1093ms
memory: 74056kb
input:
128 ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZz Z ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZb ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZWZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZbZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZQQZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZbZZZZZ ZZZZZ...
output:
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZzZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZzZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ...
result:
ok len=20417
Test #16:
score: 0
Accepted
time: 1098ms
memory: 75176kb
input:
128 ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZWZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZb ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZQQZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZQQZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZb ZZZZZZZZZ...
output:
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZzZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZzZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ...
result:
ok len=20417
Test #17:
score: 0
Accepted
time: 561ms
memory: 57624kb
input:
128 p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p ...
output:
pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp ppppppppppppppppppppppppppppppppppppppppppppp ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp p...
result:
ok len=8256
Test #18:
score: 0
Accepted
time: 299ms
memory: 68048kb
input:
64 Hash Objects The following values are provided as constant attributes of the hash objects returned by the constructors hash digest size The size of the resulting hash in bytes hash block size The internal block size of the hash algorithm in bytes A hash object has the following attributes hash na...
output:
HO Tfvapacaothorbtc hds Tsotrhib hbs Tibsothaib Ahohtfa hn Tcnothalaasaaptntcahott CivTnahbpiCsiibuPwnfssmneosp Ahohtfm hud UthowtbloRcaetascwtcoatamuamubietmuab hd RtdotdpttumsfTiaboosdswmcbitwrft hah LdetdiraasoodlcohdTmbutetvsieoonbe hc RaccothoTcbutectdodsacis Svld hsduT TsasapvldwlibutobosAstdm...
result:
ok len=968
Test #19:
score: 0
Accepted
time: 280ms
memory: 62108kb
input:
62 Invocation Manage access Packages Issues Invocations Solution files Stresses Tests Validator Checker Files Statement General info View Problems Contest Back to invocations Rejudge Set solutions tags n cpp n break cpp n log cpp n log removeset cpp n noclear cpp n spfa cpp n spfa py py n spfa pypy ...
output:
I MaPIISfSTVCFSGiVPC Bti Re Sst ncnbcnlcnlrcnncnscnsppnsppnsvcncnsc OOOOOOOOOOO OOOOOOOOWOO OOOOOOTOOTT OOOOOOTOOOO OOOOOOTOWTT OOOOOOTOWOO pt mmMmMmMmMmMmMmMmMmMmMmM Cwasstspawmtmahwlbc IsctehoTosgTagOidTtccihwoc Ctol nmvhmvh cbn vn vp nmivhmtavdvnhmavoalotfti nmvhmtavdvnhmavoalotfti Ffhmttiatwhtsf...
result:
ok len=436
Test #20:
score: 0
Accepted
time: 302ms
memory: 62616kb
input:
64 Resource Files New File Add Files Name Length Modified Actions Delete Download Edit View Advanced gen atm cpp Rename kB Delete Download Edit View olymp sty problem tex statements ftl testlib h Auto update You can place here h files or java files These files will be copied to compilation directory...
output:
RF NFAF NLM Ac DDEV Ad gac R kDDEV os pt sf th Au YcphhfojfTfwbctcddtcpoesf SF NLLM DDEVL vcv ccc gabpg geapg gaaapg gapg gdpg glpg grcg gspg gzpg gdp grp UffgvaciynIisrtutii Dnushusti Eog Ycrmagh A Nf Uatuafywitpr Vc hpccpXIfa Afsgabp Afsgabpd ADfsgap ADfsgapd Afsgap Afsgapd ADfsgdp ADfsgdpd Afsgdp...
result:
ok len=325
Test #21:
score: 0
Accepted
time: 322ms
memory: 77984kb
input:
63 Major Arcana Article Talk Read Edit View history Tools From Wikipedia the free encyclopedia A fan with cards an index and their box The Major Arcana cards redesigned by Roberto Viesi The Major Arcana are the named or numbered cards in a cartomantic tarot pack the name being originally given by oc...
output:
MA A Ta R Ed Vh To FWtfe Afwcaiatb TMAcrbRV TMAatnonciactptnbogbotttcoantpufpcgTausciascptnfticpptintucitFTninubtcgp PtttctcwsufpgatFatwspoascpufgagTmhbaacsattbbtttohnmomiWddfcgtcgtcsaptaadftrctscwakboatMA TtMaMAauitoadaotdaipETaowJBPwutnPC SMDwttFatcohsaoemmoieiitIcottcwiwiTosbteittcwACdGaScaFpeoTi...
result:
ok len=2094
Test #22:
score: 0
Accepted
time: 237ms
memory: 59388kb
input:
54 include bits stdc h include testlib h using namespace std int n vector vector string a string strip const string s auto l s begin while l s end l l auto r s end while r l prev r r return s substr l s begin r l inline int readAndCheckAnswer InStream in string first strip in readLine A Za z first l...
output:
ibsh ith uns in vvsa sscss alsb wlsell arse wrlprr rsslsbrl iirIi sfsirAZzfl ifns r ieffl vsaf fiiini apbirAZzp it ssa sip fawai sis fajp fikjkaiskwsk iaijkwk sijk e b pms iepcaisaiinaaftsics ieacaiambu aiai tais rt imiaca raa nirir ssir vsw st wst wpbt apbmw ijra ipro ijp qwJhtabphn qfPhtabjhn ipj ...
result:
ok len=270
Test #23:
score: 0
Accepted
time: 291ms
memory: 62636kb
input:
64 present me some phrases that shares the same initialism as much as possible as long as possible ChatGPT Creating long phrases that share the same initialism can be quite the puzzle Heres a list featuring the initialism S T A R T to give you an idea of how diverse the phrases can be Seek Treasure ...
output:
pmsptstsiamapalap C ClptstsicbqtpHalftiSTARTtgyaiohdtpcb SeeTART STARTi SysTART SoTART ShaTART SavTART STAzRT START StTART STARaT Tpsdtfthafstasase ctgm HamputiSTART SeTART SiTART ShTART SThART SToART STARTo STApRT SyTART STaART STARTe Epbotcosswiapjabsoace STiART STeART SpTART SaTART STAtRT STrART ...
result:
ok len=522
Test #24:
score: 0
Accepted
time: 593ms
memory: 70732kb
input:
128 You are given a string consisting of characters and or You have to paint every character of this string into one of two colors red or blue If you paint the i th character red you get r i coins If you paint it blue you get b i coins After coloring the string you remove every blue character from i...
output:
Yagascocao Yhtpecotsiootcrob Iyptitcrygric Iypibygbic Actsyrebcfiactnoiitrsi e tnopocsttlcitpiatrcitpi Feiyhtpc Witmnocyce Lscaaaonnnifitfch aloftnxx xkaita ceotadbamki aiailkfeiin Yagnxak Ytitctnofaoln Stacblpim MaBapacg Echtpaavaadv Acsbactitaosisgttdot Mhnctitothaavomaiaadvomai Bhmctjtothaavombja...
result:
ok len=2069
Test #25:
score: 0
Accepted
time: 602ms
memory: 65276kb
input:
128 An anonymous informant has told you that the array b was obtained as follows initially there existed an array a a ldots a n after which the following two component operation was performed k times A fixed point dagger x of the array a was chosen Then the array a was cyclically shifted to the left...
output:
Aaihtyttabwoafiteaaaalanawtftcowpkt Afpdxotaawc Ttaawcsttldext Aaroksotabblbnwo Ywtcitwotaicbtoitagtbf dAnxicafpotaaalanilxlnaaxx dAclsotaaalanitaalana Yagartwtravicoasv Evhanvist Taaqqott Tftaacvwtnstvvwsitcsott Tnvotnvwb Tstaxttnvoavitsovv Aaqotnvoaotvitft TbSilawatnB OtcotyBwane Feeidaiikwianni S...
result:
ok len=1849
Test #26:
score: 0
Accepted
time: 593ms
memory: 67332kb
input:
128 It turns out that Doremy has a special power She can choose k days and during these days it will not rain Doremy wants to calculate the maximum number of dry cities after using the special power The only differences between the two versions of this problem are the constraint on k the time limit ...
output:
ItotDhasp Scckdadtdiwnr Dwtctmnodcautsp Todbttvotpatcokttlatml Ycmhoiavotpas Dliarcconcnftn Twbptdoritnmd Ititdiwritcitiliri Acicdiiwnritcitnmd Scckditevkadtdiwnr Dliacconcnftnwaiplititc Icbmaaugwnn Itaneitg NDwtmtgc Tdtscaaebiaji skiSakgicjcc wSitsoatntacitsccoeiojaciagc CDmtgc Tnijaitscciteapfitj ...
result:
ok len=2054
Test #27:
score: 0
Accepted
time: 568ms
memory: 59168kb
input:
128 Ab aba abac abacaabaca synonyms abaciscus abacist abackaback synonyms Abaco abacterial abactinal abaculus abacusabacus synonyms Abadan AbaddonAbaddon synonyms A bad penny always turns up ab aeterno abaftabaft synonyms Abagtha Abailard Abakan abaloneabalone synonyms abamp abampere abandonabandon ...
output:
Ab aba abac abacas abacis abaci abacks Abac abacte abact abacu abacs Abad Abs Abpatu aa abafs Abag Abai Abak abals abamp abam abansy abands aband Ahayweh abans aban abapi abap AIs b asy abs asyn absy abass abasi asyno abasy abats abati aj abato abat Aba abas abax abay abb Abb abbac ad Abbad Abbai Ab...
result:
ok len=504
Test #28:
score: 0
Accepted
time: 477ms
memory: 60096kb
input:
105 abele abelia Abelian Abelian group Abe Lincoln in Illinois Abel meholah abelmosk Abelson Abenaki abendabend synonyms Abeokuta Abercrombie Aberdare Aberdeen Aberdeen Angus Aberdeen Proving Ground Aberdeenshire Aberdeen terrier aberdevine Aberdonian Aberfan Abernathy abernethy aberrantaberrant syn...
output:
abele abeli Abeli Ag ALiI Am abel Abel Aben abens Abeo Aberc Ab Abe AA APG Aber At aberd Aberd Aberf Abern aber asyno abers Abery aes abe abesy abet abets ae abeys abes abf ABFM AB abhe AP abh absyn abhsy abhos abhs Abia Abiat Abib abid abisy abbbs abids Abid Abie abien bi abie aba abigs Abih Abil a...
result:
ok len=410
Test #29:
score: 0
Accepted
time: 569ms
memory: 59916kb
input:
128 Saar Saarbrcken SAARC Saaremaa Saarinen Saarland SaaS Saavedra Lamas Sab Saba Sabadell sabadilla Sabaean Sabah sabalo Sabaoth Sabata Sabatier Sabatini sabaton Sabattier effect sabayon Sabbat Sabbatarian SabbathSabbath synonyms Sabbath school Sabbatical sabbatical yearsabbatical year synonyms Sab...
output:
Saar Saarb SAA Saare Saa Saarl SaaS SaL Sab Saba Sabad sabad Sabae Sabah sabal Sabao Sabata Sabat Sabati sabat Se saba S Sa Sas Ss Sabba syys Sabb SA Sabea Sabe sabes sabe sarrs ssa st satt sabi Sabi Sabin SL Sabini Svvs Sabir sabk sabls san sabl SIp sabo sasyn sabsy sabos sabr sabrs sr sab stt Sabr...
result:
ok len=555
Test #30:
score: 0
Accepted
time: 569ms
memory: 59140kb
input:
128 safari suit Safavid safesafe synonyms safe and soundsafe and sound synonyms safe area safe as houses safe blower safe breaker safe conductsafe conduct synonyms safecrackersafecracker synonyms safe deposit safe deposit boxsafe deposit box synonyms safeguardsafeguard synonyms safe harborsafe harbo...
output:
sasu Safa ssy sasass saa saah sab sbr saccs ssyn sad sadbdbs safs sahhs shhs sasyn safe safsy sap sse sasp ssur safes sbbs sca sac sch sci sccs sd sdbdbs sfa sfi sfu sf sggs sho sints siis SI slls sal sl sam smms snns spps srrs ssq sat svvs saw sa saff so saffs Saf SR SAf saf SAD safr saft sagss ssy...
result:
ok len=443
Test #31:
score: 0
Accepted
time: 516ms
memory: 58096kb
input:
115 sage cock sage Derby sage green sage grouse sage hen sagelysagely synonyms sagenite sage sparrow sage thrasher saggar saggersagger synonyms sagging moment saggysaggy synonyms Saghalien Sag Harbor Saginaw Saginaw Bay Sagitta sagittalsagittal synonyms sagittal suture Sagittarian SagittariusSagitta...
output:
sc sD sagr sgr she sages sage ssp st sagg sagsy sm saggs Sagh SH Sagin SBa Sagit sagis sasu Sagi Sas sagi sags sago sg sap sr S sag Sagu SeH Sag sw Sa Ss Sah Saha Sahe Sat sah SaA SAH saic saids Said saig Sai ST sails sail sailb ssyn scttw sasy saile sailf sais sbbs sl ssh si sailm sas sh sailo ssc ...
result:
ok len=379
Test #32:
score: 0
Accepted
time: 590ms
memory: 62632kb
input:
128 AAAzzzzzAzzzAzzAzAzzAzzAAzzzzAzAzzAAAAzzAAzAAzAAAAzAzzzzzAAAAzAAAzzzAzzAAzAAzzAAAAAzzzzzzAzzAAzzzzzAAAAzzzAzAAzzzAAzzzAAAAzAAzzA AzAAzAzAAzAAzzzzAAzzzAzzzAzzAAAzzzAAAzzzzAzAAzzzAzAzAzAzzzzAAAzAzzzAAzzzzzzzzzAAzzzzzzAAAzzzzAzzAzAzAAzAzzzzzAzAzzAzzAzzAAzzAAzA AAzAzzzzAzAAAzAAzAAzAzAzAAzAAzzAzzzAAz...
output:
AAAzzzz AzAAzA AAzAzzz z AAzAAAz zAAzAAA zAAzzzz AAAzzAz zAAAzAA zzzzzzz zAAzAA zAAAAzz AAzzAz AAAzAzA zzAzzzz zzAzzA zAzzA zzzzAzz zAzAzz zAAAAzA AAzzzAz zzAAzz AAzAAAA AAzA AzAAAz A zzzzzzA zAzzzA zAzzAA AAzzzA zAAAzzz Azzz zAzzAz zAAAzAz zAzzzz AzzzAA zzzAAz zzAzAz zAzA Azz Azzzz AAA zzzz zAzzz z...
result:
ok len=673
Test #33:
score: 0
Accepted
time: 589ms
memory: 64148kb
input:
128 zAzzAAAAAzzAAAzAAAzAzzzAAzzzAzzzAzAzzAAzzAzAAzAzAzAAAAAzzzzzAAAAzzzzzAAAAzzzzzAAzzzAzAzAzzzAAAzAAAAzzzzAzAzzzzAzAzAAAzAzzzzAzAAA zzAzzzAAzzAAAzAAAzzAzAAzAAzzzAAAAzzzzAzzzAzAzzzAAAAAAAzzAzzzAzzAAzzAAAAAzAzzzzzAzAAAAAzzAAzzAzAAzzAAAzAzzAzAAAAAAzAzAzzzAAAzAzzA AzzAAAAzzAAzzAAzzAAAAzAzzzzzAAAzzAzzzA...
output:
zAzzAAA zzAzzzA AzzAAAA AAAAzA zAAAzzA zAAAAzz AAAzAAA zAAAA AzAzAAA zAzAAA AzAzAzz AzAzA zzAAzAA zAzzA AAzzzz zzzA AzzzzzA AAzAAA AzAzAz AAAAAAz zAAAAz AzzzzA zAzAA zAA zAzzAA zzzzzz AAAAzzA zzAzAz zzzAz zzAzAA zAzAz zAAzAz AAAzAAz AzzAAA zAAAzA zAzzzA AAzzA zAzzAz Az zAzzzz AAzAzz zzAzA zAAAzz AAz...
result:
ok len=667
Test #34:
score: -100
Time Limit Exceeded
input:
128 riJvmelARapZOVXwMfUdCzkwcdcFjGKiqKQwFwiXFPFIjlUnHZFetAENZXLpvEWaOZRVAeFBjLaCKvnszYuPa riJvmelARapZOVXwMfUdCzkwcdcFjGKiqKQwFwiXFPFIjlUnHZFetAENZXLpvEWaOZRVAeFBjLaCKvnszYuPa riJvmelARapZOVXwMfUdCzkwcdcFjGKiqKQwFwiXFPFIjlUnHZFetAENZXLpvEWaOZRVAeFBjLaCKvnszYuPa riJvmelARapZOVXwMfUdCzkwcdcFjGKiqKQwFw...
output:
rrirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrirrrrrrrrrrrrrrrrrrrrrrrrr...