-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathin.txt
101 lines (91 loc) · 1.57 KB
/
in.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
const pi = 3, e = 2;
var left,right,mid,n:integer;c,target:char;name:array[30] of char;arr:array[26] of char;
procedure search(left,right:integer;target:char;arr:array[26] of char);
var i:integer;
begin
;
procedure mergesort(l,r,mid:integer);
var i,j,k,x,flag:integer;
begin
i:=l;
j:=mid+1;
k:=l;
if i<=mid
then begin
if j<=r
then do
begin
flag := 0
if a[i]<=a[j]
then begin
b[k]:=a[i];
i := i+1;
end
else begin
b[k]:=a[j];
ans:=ans-k+j;
j := j+1;
end
k := k+1;
if i <= mid
then if j <= r
then flag = 1;
end while flag = 1
;
end;
if i>mid
then begin
for x:=j to r do
begin
b[k]:=a[x];
k := k+1;
end
end
else begin
for x:=i to mid do
begin
b[k]:=a[x];
k := k + 1
end
end
for x:=l to r do
a[x]:=b[x];
end;
procedure merge(l,r:integer);
var mid:integer;
begin
if l<r
then begin
mid:=(l+r) / 2;
merge(l,mid);
merge(mid+1,r);
mergesort(l,r,mid);
end
end;
function binsearch(left,right:integer;target:char;arr:array[26] of char) : integer;
var mid:integer;
begin
if(left <= right)
then
mid := (left + right) / 2;
if target = arr[mid]
then
write("Find the target");
else if target < arr[mid]
then
binsearch(left,mid-1,target,arr)
else
binsearch(mid+1,right,target,arr)
end;
begin
read(n);
left := 0;
right := n;
target := 'g';
c := '5';
for i := 0 to right do
read(arr[i])
merge(0,right);
search(0,right,target,arr);
binsearch(0,right,c,arr);
end.