锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
[3][4][6][8][14][15][16][17][21][25][26][27][30][31][40][41][42][43]
[3,4][6][8][14][15][16][17][21][25][26][27][30][31][40][41][42][43]
[3,4][6][8][14,15][16][17][21][25][26][27][30][31][40][41][42][43]
[3,4][6][8][14,15,16][17][21][25][26][27][30][31][40][41][42][43]
[3,4][6][8][14,15,16,17][21][25][26][27][30][31][40][41][42][43]
[3,4][6][8][14,15,16,17][21][25,26][27][30][31][40][41][42][43]
[3,4][6][8][14,15,16,17][21][25,26,27][30][31][40][41][42][43]
[3,4][6][8][14,15,16,17][21][25,26,27][30,31][40][41][42][43]
[3,4][6][8][14,15,16,17][21][25,26,27][30,31][40,41][42][43]
[3,4][6][8][14,15,16,17][21][25,26,27][30,31][40,41,42][43]
[3,4][6][8][14,15,16,17][21][25,26,27][30,31][40,41,42,43]
[3,4,6][8][14,15,16,17][21][25,26,27][30,31][40,41,42,43]
[3,4,6,8][14,15,16,17][21][25,26,27][30,31][40,41,42,43]
[3,4,6,8][14,15,16,17][21][25,26,27,30,31][40,41,42,43]
[3,4,6,8][14,15,16,17,21][25,26,27,30,31][40,41,42,43]
code
6
#include <iostream>
7
#include <string.h>
8
using namespace std;
9
/**//*緇撴瀯浣撴潙姣忎釜鐐圭殑鏁版嵁
10
鍏朵腑data琛ㄧず杈撳叆鐨勬暟鎹?br>11
left鍜宺ight琛ㄧず浠栫殑宸﹀彸杈?br>12
鏈夋病鏈夎繛浜嗗叾浠栫殑鏈ㄦ澘
13
*/
14
typedef struct
15
{
16
int data;
17
int left,right;
18
}Node;
19
Node node[202];
20
bool b_barn[202];//b_barn[i]琛ㄧず絎琲鍙風墰媯氭湁娌℃湁琚湪鏉胯鐩?nbsp;
21
int m,s,c;//鍜岄鐩腑鐨勪竴鏍?nbsp;
22
void work()
23
{
24
int f_start,f_end,dis;//dis琛ㄧず鏈灝忚窛紱?br>25
//f_start琛ㄧず鏈灝忚窛紱繪椂鐨勫乏杈圭殑涓嬫爣
26
//f_end 琛ㄧず鏈灝忚窛紱繪椂鐨勫彸杈圭殑涓嬫爣
27
int count = 0;//鐢ㄦ潵瀛樻渶鍚庣殑緇撴灉
28
int t = c;//琛ㄧず涓寮濮嬬敤c鍧楁湪鏉匡紝涔熷氨鏄竴涓墰媯氫竴鍧?nbsp;
29
dis = 202;//鏈澶ц窛紱伙紝琛ㄧず鏃犵┓
30
while(t > m)
31
{
32
dis = 202;
33
for(int i = 1;i < c;i++)//寰幆鏁扮粍錛屾壘鐩擱殧鏈灝忕殑錛岀劧鍚庤繛涓?nbsp;
34
{//鍥犱負榪欐牱“嫻垂”鐨勬湪鏉挎渶灝戯紝涔熷氨鏄兘杈懼埌鏈浼樿В
35
if(((node[i].data - node[i-1].data) < dis)&&(0 == node[i].left||0 == node[i-1].right))
36
{//絎竴涓垽鏂潯浠跺緢濂界悊瑙o紝絎簩涓槸琛ㄧず浠栦滑浠ュ墠娌¤繛榪囷紝涓嶇劧鐨勮瘽錛?br>37
//浼氫竴鐩存壘鍒扮涓涓渶灝忕殑 ,鑰屽拷鐣ヤ簡鍚庨潰鐨?nbsp;
38
dis = node[i].data - node[i-1].data;
39
f_start = i-1;
40
f_end = i;
41
}
42
}
43
for(int i = node[f_start].data+1;i < node[f_end].data;i++)
44
{//灝嗚繛璧鋒潵鐨勪袱鍧楁湪鏉夸腑闂寸殑閮界疆涓鴻瑕嗙洊
45
b_barn[i] = true;
46
}
47
node[f_start].right = 1;//鏍囪錛屼篃灝辨槸榪欎釜鐐圭殑鍙寵竟榪炰簡鍏朵粬鏈ㄦ澘
48
node[f_end].left = 1;//鏍囪錛屼篃灝辨槸榪欎釜鐐圭殑宸﹁竟榪炰簡鍏朵粬鏈ㄦ澘
49
t--;//琛ㄧず鏈ㄦ澘鏁板噺灝?
50
}
51
for(int i = node[0].data;i < node[c-1].data+1;i++)
52
{
53
if(b_barn[i])//閫氳繃琚爣璁扮殑鏁扮粍鏉ョ畻鏈鍚庣殑緇撴灉
54
count++;
55
}
56
printf("%d\n",count);
57
}
58
int cmp(const void *a,const void *b)
59
{
60
Node * c = (Node *)a;
61
Node * d = (Node *)b;
62
return c->data - d->data;
63
}
64
int main(void)
65
{
66
freopen("barn1.in","r",stdin);
67
freopen("barn1.out","w",stdout);
68
scanf("%d %d %d",&m,&s,&c);
69
memset(b_barn,false,sizeof(b_barn));//鍒濆鍖栨暟緇?nbsp;
70
for(int i = 0;i < c;i++)
71
{
72
scanf("%d",&node[i].data);
73
node[i].left = node[i].right = 0;//鍒濆鍖栨墍鏈夌殑閮芥病鏈夎繛榪?nbsp;
74
b_barn[node[i].data] = true;
75
76
}
77
qsort(node,c,sizeof(node[0]),cmp);//鍏堟帓搴忥紝浣挎湪鏉挎湁搴?nbsp;
78
work();
79
return 0;
80
}
81
]]>