1.1 题目描述
Alice 有一个数列ai。
但是她不喜欢这个数列,于是她决定随机交换其中两个数。
Alice 想知道,交换后的数列与原数列相同的数有多少个。请求出所有可能的
值。
1.2 输入格式
第一行一个正整数n,表示Alice 的数列的长度。
第二行n 个正整数,第i 个数表示ai,即交换前的数列的第i 项。
1.3 输出格式
一行若干个严格递增的正整数,用空格隔开,表示交换后的数列与原数列相
同的数的个数。
1.4 样例输入
32
3 3
1.5 样例输出
1 3
1.6 样例解释
交换后可能的数列有2 3 3, 3 2 3, 3 3 2,个数分别是3, 1, 1。
1.7 数据范围
对于100% 的数据,1 n 100; 1 ai 1000。
2
思路
如果交换的两个数相同,相同个数就是n,不相同就是n-2。
var
a:array[1..1000] of longint;
b:array[1..1000] of boolean;
n,i,j:longint;
begin
readln(n);
for i:=1 to n do
read(a[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]=a[j] then
b[n]:=true
else b[n-2]:=true;
for i:=1 to n do
if b[i] then write(i,' ');
end.