QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#189854 | #6543. Visiting Friend | KKT89 | AC ✓ | 548ms | 206096kb | C++17 | 9.9kb | 2023-09-28 00:42:31 | 2023-09-28 00:42:31 |
Judging History
answer
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef unsigned long long int ull;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll myRand(ll B) {
return (ull)rng() % B;
}
#line 2 "graph/others/block-cut-tree.hpp"
#line 2 "graph/graph-template.hpp"
/**
* @brief Graph Template(グラフテンプレート)
*/
template< typename T = int >
struct Edge {
int from, to;
T cost;
int idx;
Edge() = default;
Edge(int from, int to, T cost = 1, int idx = -1) : from(from), to(to), cost(cost), idx(idx) {}
operator int() const { return to; }
};
template< typename T = int >
struct Graph {
vector< vector< Edge< T > > > g;
int es;
Graph() = default;
explicit Graph(int n) : g(n), es(0) {}
size_t size() const {
return g.size();
}
void add_directed_edge(int from, int to, T cost = 1) {
g[from].emplace_back(from, to, cost, es++);
}
void add_edge(int from, int to, T cost = 1) {
g[from].emplace_back(from, to, cost, es);
g[to].emplace_back(to, from, cost, es++);
}
void read(int M, int padding = -1, bool weighted = false, bool directed = false) {
for(int i = 0; i < M; i++) {
int a, b;
cin >> a >> b;
a += padding;
b += padding;
T c = T(1);
if(weighted) cin >> c;
if(directed) add_directed_edge(a, b, c);
else add_edge(a, b, c);
}
}
inline vector< Edge< T > > &operator[](const int &k) {
return g[k];
}
inline const vector< Edge< T > > &operator[](const int &k) const {
return g[k];
}
};
template< typename T = int >
using Edges = vector< Edge< T > >;
#line 2 "graph/others/low-link.hpp"
#line 4 "graph/others/low-link.hpp"
/**
* @brief Low Link(橋/関節点)
* @see http://kagamiz.hatenablog.com/entry/2013/10/05/005213
* @docs docs/low-link.md
*/
template< typename T = int >
struct LowLink : Graph< T > {
public:
using Graph< T >::Graph;
vector< int > ord, low, articulation;
vector< Edge< T > > bridge;
using Graph< T >::g;
virtual void build() {
used.assign(g.size(), 0);
ord.assign(g.size(), 0);
low.assign(g.size(), 0);
int k = 0;
for(int i = 0; i < (int) g.size(); i++) {
if(!used[i]) k = dfs(i, k, -1);
}
}
explicit LowLink(const Graph< T > &g) : Graph< T >(g) {}
private:
vector< int > used;
int dfs(int idx, int k, int par) {
used[idx] = true;
ord[idx] = k++;
low[idx] = ord[idx];
bool is_articulation = false, beet = false;
int cnt = 0;
for(auto &to : g[idx]) {
if(to == par && !exchange(beet, true)) {
continue;
}
if(!used[to]) {
++cnt;
k = dfs(to, k, idx);
low[idx] = min(low[idx], low[to]);
is_articulation |= par >= 0 && low[to] >= ord[idx];
if(ord[idx] < low[to]) bridge.emplace_back(to);
} else {
low[idx] = min(low[idx], ord[to]);
}
}
is_articulation |= par == -1 && cnt > 1;
if(is_articulation) articulation.push_back(idx);
return k;
}
};
#line 3 "graph/connected-components/bi-connected-components.hpp"
template< typename T = int >
struct BiConnectedComponents : LowLink< T > {
public:
using LowLink< T >::LowLink;
using LowLink< T >::g;
using LowLink< T >::ord;
using LowLink< T >::low;
vector< vector< Edge< T > > > bc;
void build() override {
LowLink< T >::build();
used.assign(g.size(), 0);
for(int i = 0; i < (int)used.size(); i++) {
if(!used[i]) dfs(i, -1);
}
}
explicit BiConnectedComponents(const Graph< T > &g) : Graph< T >(g) {}
private:
vector< int > used;
vector< Edge< T > > tmp;
void dfs(int idx, int par) {
used[idx] = true;
bool beet = false;
for(auto &to : g[idx]) {
if(to == par && !exchange(beet, true)) continue;
if(!used[to] || ord[to] < ord[idx]) {
tmp.emplace_back(to);
}
if(!used[to]) {
dfs(to, idx);
if(low[to] >= ord[idx]) {
bc.emplace_back();
for(;;) {
auto e = tmp.back();
bc.back().emplace_back(e);
tmp.pop_back();
if(e.idx == to.idx) break;
}
}
}
}
}
};
#line 5 "graph/others/block-cut-tree.hpp"
/**
* @brief Block Cut Tree
* @see https://ei1333.hateblo.jp/entry/2020/03/25/010057
*/
template< typename T = int >
struct BlockCutTree : BiConnectedComponents< T > {
public:
using BiConnectedComponents< T >::BiConnectedComponents;
using BiConnectedComponents< T >::g;
using BiConnectedComponents< T >::articulation;
using BiConnectedComponents< T >::bc;
vector< int > rev;
vector< vector< int > > group;
Graph< T > tree;
explicit BlockCutTree(const Graph< T > &g) : Graph< T >(g) {}
int operator[](const int &k) const {
return rev[k];
}
void build() override {
BiConnectedComponents< T >::build();
rev.assign(g.size(), -1);
int ptr = (int) bc.size();
for(auto &idx : articulation) {
rev[idx] = ptr++;
}
vector< int > last(ptr, -1);
tree = Graph< T >(ptr);
for(int i = 0; i < (int) bc.size(); i++) {
for(auto &e : bc[i]) {
for(auto &ver : {e.from, e.to}) {
if(rev[ver] >= (int) bc.size()) {
if(exchange(last[rev[ver]], i) != i) {
tree.add_edge(rev[ver], i, e.cost);
}
} else {
rev[ver] = i;
}
}
}
}
group.resize(ptr);
for(int i = 0; i < (int) g.size(); i++) {
group[rev[i]].emplace_back(i);
}
}
};
struct LowestCommonAncestor{
int n,h;
vector<vector<int>> g,par;
vector<int> dep;
LowestCommonAncestor(int n):n(n),g(n),dep(n){
h=1;
while((1<<h)<=n)h++;
par.assign(h,vector<int> (n,-1));
}
void add_edge(int u,int v){
g[u].push_back(v);
g[v].push_back(u);
}
void dfs(int v,int p,int d){
par[0][v]=p;
dep[v]=d;
for(auto u:g[v]){
if(u!=p)dfs(u,v,d+1);
}
}
void build(int r){
dfs(r,-1,0);
for(int i=0;i<h-1;i++){
for(int j=0;j<n;j++){
if(par[i][j]>=0)par[i+1][j]=par[i][par[i][j]];
}
}
}
int lca(int u,int v){
if(dep[u]>dep[v])swap(u,v);
for(int i=0;i<h;i++){
if((dep[v]-dep[u])&1<<i)v=par[i][v];
}
if(u==v)return u;
for(int i=h-1;i>=0;i--){
if(par[i][u]!=par[i][v])u=par[i][u],v=par[i][v];
}
return par[0][u];
}
int distance(int u,int v){
return dep[u]+dep[v]-dep[lca(u,v)]*2;
}
// u->v
int kthanc(int u,int v){
int k = dep[v]-dep[u]-1;
for (int i = 0; i < h and k; ++i) {
if((1<<i)&k) {
k -= (1<<i);
v = par[i][v];
}
}
return v;
}
};
int main() {
cin.tie(nullptr);
ios::sync_with_stdio(false);
int q; cin >> q;
while (q--) {
int n,m; cin >> n >> m;
BlockCutTree<> bct(n);
bct.read(m);
bct.build();
auto rev = bct.rev;
auto vs = bct.group;
auto g = bct.tree.g;
int ptr = bct.bc.size();
vector<int> cnt(g.size());
for (int i = 0; i < n; ++i) {
cnt[rev[i]]++;
}
LowestCommonAncestor lca(g.size());
for (int i = 0; i < g.size(); ++i) {
for (auto e:g[i]) {
lca.g[e.from].push_back(e.to);
// lca.add_edge(e.from, e.to);
}
}
int rt = 0;
lca.build(rt);
vector<int> sum(g.size());
auto dfs = [&](auto dfs,int s,int p) -> void {
sum[s] = cnt[s];
for (int t:lca.g[s]) {
if(t == p) continue;
dfs(dfs,t,s);
sum[s] += sum[t];
}
};
dfs(dfs,rt,-1);
int qq; cin >> qq;
while (qq--) {
int a,b; cin >> a >> b;
a--; b--;
int i = rev[a], j = rev[b];
if (i < ptr and j < ptr) {
cout << n << "\n";
}
else if(i < ptr or j < ptr) {
if(i < ptr) swap(i, j);
// iが関節点
int lc = lca.lca(i, j);
if (lc == i) {
int res = sum[lca.kthanc(i,j)]+1;
cout << res << "\n";
}
else {
int res = n-sum[i]+1;
cout << res << "\n";
}
}
else{
int lc = lca.lca(i,j);
if (lc != i and lc != j) {
int res = n-sum[i]-sum[j]+2;
cout << res << "\n";
}
else {
if(lca.dep[i] > lca.dep[j]) swap(i,j);
// i->j
int res = sum[lca.kthanc(i,j)]+1-sum[j]+1;
cout << res << "\n";
}
}
}
}
}
这程序好像有点Bug,我给组数据试试?
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3664kb
input:
1 5 5 1 2 1 3 2 4 4 5 2 5 5 1 2 1 4 2 3 2 5 3 5
output:
2 4 3 3 5
result:
ok 5 number(s): "2 4 3 3 5"
Test #2:
score: 0
Accepted
time: 2ms
memory: 3676kb
input:
100 10 25 7 4 1 10 7 2 3 4 5 7 9 10 10 5 8 10 6 7 9 1 4 2 2 6 8 5 6 9 5 9 7 1 2 1 4 1 9 8 8 3 1 8 4 8 2 10 3 1 3 6 100 6 4 10 8 5 4 7 8 3 10 5 9 6 9 6 8 2 10 10 9 6 9 1 8 3 6 10 9 1 4 10 8 1 6 5 1 5 10 9 1 3 5 8 7 3 2 3 9 2 9 9 4 2 10 8 4 6 2 2 1 7 4 3 6 6 5 10 6 1 4 5 1 7 10 7 1 8 5 3 8 7 5 3 9 5 4...
output:
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 ...
result:
ok 10000 numbers
Test #3:
score: 0
Accepted
time: 2ms
memory: 3920kb
input:
100 10 10 5 10 6 4 2 9 9 8 9 10 1 5 7 2 7 4 9 3 6 5 100 4 7 4 5 3 10 7 10 4 10 6 7 3 2 5 2 1 2 10 8 3 1 10 5 6 1 2 4 5 9 6 7 1 8 5 6 7 9 9 8 9 3 6 1 9 10 4 10 1 4 2 7 8 9 9 4 7 9 6 7 9 1 9 6 9 1 4 3 9 6 2 3 9 5 6 7 7 8 8 1 4 8 9 6 8 2 4 5 3 5 4 8 5 10 6 4 8 6 8 7 7 2 3 4 4 8 1 2 3 2 2 10 4 10 3 6 8 ...
output:
10 9 10 10 10 10 10 9 10 10 10 9 10 10 7 10 10 9 8 2 2 10 8 10 10 10 2 8 8 10 8 8 8 10 8 10 7 10 10 10 10 8 10 9 9 10 9 10 10 10 10 10 10 10 10 10 10 10 9 2 8 10 10 10 10 10 10 2 10 10 10 9 8 9 10 8 8 10 10 10 10 10 10 10 10 2 9 9 9 8 9 8 10 10 2 9 10 10 9 10 9 6 7 9 9 9 10 9 5 7 5 10 9 9 9 10 10 6 ...
result:
ok 10000 numbers
Test #4:
score: 0
Accepted
time: 9ms
memory: 3820kb
input:
100 100 100 80 78 78 26 52 35 72 97 81 95 93 15 94 72 43 61 12 78 33 93 61 16 58 88 40 61 96 35 99 19 39 31 56 99 62 26 69 51 70 3 9 94 42 61 32 44 56 89 62 72 90 43 61 24 2 77 39 32 34 20 45 87 73 77 86 69 61 81 57 83 34 82 89 92 25 52 90 97 80 21 46 81 60 72 39 6 59 68 59 17 57 3 63 70 21 89 54 63...
output:
99 94 99 100 100 100 99 96 96 100 100 97 99 2 100 95 77 21 100 99 78 89 98 96 96 100 79 99 100 99 98 100 92 99 98 100 84 97 4 94 75 100 89 100 100 97 96 99 100 96 94 93 100 100 100 78 100 72 88 89 99 81 97 91 99 93 100 92 98 80 93 79 99 96 99 79 94 96 77 21 100 9 100 91 99 99 94 2 99 90 91 94 96 99 ...
result:
ok 10000 numbers
Test #5:
score: 0
Accepted
time: 51ms
memory: 4016kb
input:
100 100 99 63 30 14 58 2 19 76 62 66 13 85 91 89 47 25 35 60 55 4 28 13 7 29 47 30 22 84 76 85 35 37 67 10 13 63 26 80 70 70 73 4 81 90 60 56 44 42 44 46 42 89 95 10 61 84 27 35 69 26 67 47 16 11 78 66 68 45 82 60 80 70 30 96 31 48 60 81 48 96 5 89 96 92 100 96 39 73 78 94 35 33 41 98 27 13 80 84 46...
output:
78 100 86 78 37 99 95 95 95 89 95 100 100 24 38 26 83 100 100 80 2 100 78 93 93 100 98 100 66 98 95 99 97 93 100 95 95 97 95 100 95 96 60 100 86 98 99 99 96 92 93 100 7 100 97 99 84 99 98 98 7 94 97 97 100 97 96 98 100 66 95 92 100 42 99 38 96 94 100 99 96 36 98 90 95 91 91 100 84 99 100 94 99 100 1...
result:
ok 300000 numbers
Test #6:
score: 0
Accepted
time: 432ms
memory: 156692kb
input:
1 200000 200005 143434 88006 153771 154874 66423 170692 146283 6601 155961 164596 168635 18442 76196 80698 111864 77497 161981 64846 118578 76074 68608 192123 96367 47681 140827 119456 23398 117688 167600 79026 117829 18397 187735 145208 47404 38801 76057 195982 181616 66442 131190 175267 78809 1194...
output:
199996 199986 199987 200000 199998 198266 199998 199998 199976 200000 199998 199999 199991 199996 200000 199501 199999 200000 199986 199997 199999 200000 200000 199992 199952 200000 199993 199991 199993 199997 199914 199970 199998 199797 199040 199997 199974 199974 199934 199990 200000 199968 199995...
result:
ok 500000 numbers
Test #7:
score: 0
Accepted
time: 548ms
memory: 206096kb
input:
1 200000 199999 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 5...
output:
48502 122460 3767 146420 86744 28217 16598 5399 54778 83557 17649 10101 112051 18579 28563 113205 82064 10264 162062 162945 142566 85823 133773 113791 32009 88269 35701 34455 3056 45080 130814 123345 129934 18437 17391 18891 5653 47598 31737 71696 62081 29991 164467 66848 2395 109684 115606 61144 86...
result:
ok 500000 numbers
Test #8:
score: 0
Accepted
time: 398ms
memory: 131744kb
input:
1 200000 299998 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 5...
output:
157194 124118 200000 169308 106089 200000 176622 200000 162310 200000 200000 10101 200000 18579 200000 200000 109182 46713 197013 162945 191814 200000 200000 200000 32009 88269 200000 200000 112554 153502 176802 200000 178256 200000 17391 200000 5653 182450 200000 125832 62081 200000 200000 142774 2...
result:
ok 500000 numbers
Test #9:
score: 0
Accepted
time: 3ms
memory: 3660kb
input:
100 20 28 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 1 3 3 5 5 7 7 9 9 11 11 13 13 15 15 17 17 19 100 3 2 13 10 15 5 4 9 15 7 5 10 12 6 17 5 4 5 19 12 7 8 18 10 6 10 1 8 15 14 16 1 14 17 3 7 6 4 11 7 2 10 10 2 2 12 6 11 19 10 7 10 15 6 11 8 2 3 1...
output:
3 13 11 9 9 16 20 13 5 19 14 20 20 20 15 20 17 5 20 5 20 20 20 11 19 14 15 11 3 20 5 7 20 20 14 18 7 3 20 20 11 17 11 7 20 20 20 18 13 8 18 10 5 17 3 20 16 20 20 5 20 9 12 17 9 20 19 9 5 17 9 12 4 16 20 20 3 5 17 13 20 5 20 5 9 20 15 10 20 11 20 20 9 20 19 13 7 20 20 20 20 13 7 20 12 19 9 5 20 11 9 ...
result:
ok 10000 numbers
Test #10:
score: 0
Accepted
time: 153ms
memory: 116792kb
input:
1 200000 199999 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 ...
output:
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...
result:
ok 500000 numbers
Test #11:
score: 0
Accepted
time: 99ms
memory: 116500kb
input:
1 200000 200000 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 ...
output:
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...
result:
ok 200005 numbers
Test #12:
score: 0
Accepted
time: 147ms
memory: 117868kb
input:
1 200000 200000 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 ...
output:
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...
result:
ok 500000 numbers
Test #13:
score: 0
Accepted
time: 100ms
memory: 4780kb
input:
100 2000 2000 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 40 1 41 1 42 1 43 1 44 1 45 1 46 1 47 1 48 1 49 1 50 1 51 1 52 1 53 1 54 1 55 1 56 1 57 1 58 1 59 1 60...
output:
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...
result:
ok 300000 numbers
Test #14:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
1 5 5 1 2 1 3 2 4 4 5 2 5 5 1 2 1 4 2 3 2 5 3 5
output:
2 4 3 3 5
result:
ok 5 number(s): "2 4 3 3 5"
Test #15:
score: 0
Accepted
time: 0ms
memory: 3640kb
input:
1 2 1 1 2 1 2 1
output:
2
result:
ok 1 number(s): "2"