锘??xml version="1.0" encoding="utf-8" standalone="yes"?> Farmer Brown's cows are up in arms, having heard that McDonalds is
considering the introduction of a new product: Beef McNuggets. The
cows are trying to find any possible way to put such a product in a
negative light.
One strategy the cows are pursuing is that of `inferior packaging'.
``Look,'' say the cows, ``if you have Beef McNuggets in boxes of 3, 6,
and 10, you can not satisfy a customer who wants 1, 2, 4, 5, 7, 8, 11,
14, or 17 McNuggets. Bad packaging: bad product.''
Help the cows. Given N (the number of packaging options, 1 <= N
<= 10), and a set of N positive integers (1 <= i <= 256) that
represent the number of nuggets in the various packages, output the
largest number of nuggets that can not be purchased by buying nuggets
in the given sizes. Print 0 if all possible purchases can be made or
if there is no bound to the largest number.
The largest impossible number (if it exists) will be no larger than
2,000,000,000.
]]>
浠g爜濡備笅錛?br />
int聽radix_sort(int聽*array,int聽begin,int聽end)
{
聽聽聽聽if(array==NULL||begin>end)聽return聽0;
聽聽聽聽int聽len聽=聽end-begin+1;
聽聽聽聽int聽*tmp聽=聽malloc(sizeof(int)*len);
聽聽聽聽int聽*src,*dst;
聽聽聽聽src聽=聽array;
聽聽聽聽dst聽=聽tmp;
聽聽聽聽int聽i;
聽聽聽聽for(i=0;i<32;i+=4){
聽聽聽聽聽聽聽聽_radix_sort(src,dst,len,i);
聽聽聽聽聽聽聽聽tmp聽=聽src;
聽聽聽聽聽聽聽聽src聽=聽dst;
聽聽聽聽聽聽聽聽dst聽=聽tmp;
聽聽聽聽}
聽聽聽聽free(dst);
聽聽聽聽return聽1;
}
void聽_radix_sort(int聽*src,int聽*dst,int聽len,int聽offset)
{
聽聽聽聽int聽cnt[16];
聽聽聽聽memset(cnt,0,sizeof(cnt));
聽聽聽聽int聽mask聽=聽0xF<<offset;
聽聽聽聽int聽i=0;
聽聽聽聽for(i=0;i<len;++i){
聽聽聽聽聽聽聽聽cnt[聽(src[i]&mask)>>offset聽]聽++;
聽聽聽聽}
聽聽聽聽for(i=1;i<16;++i){
聽聽聽聽聽聽聽聽cnt[i]+=cnt[i-1];
聽聽聽聽}
聽聽聽聽for(i=len-1;i>=0;--i){
聽聽聽聽聽聽聽聽dst[--cnt[(src[i]&mask)>>offset]]聽=聽src[i];聽
聽聽聽聽}
}
]]>
macro(hello)
棰勫鐞嗗悗灞曞紑涓?
{"hello",do_hello}
]]>
]]>
濡俰ndex[1]==3銆傞偅涔堬紝璇存槑array[1]榪欎釜浣嶇疆搴旇鏀劇殑鏄痑rray[3].鎴戜滑灝哸rray[1]淇濆瓨鍒皌mp涓?br />鐒跺悗array[1]=array[3].鐜板湪array[3]鏄彲浠ユ斁緗殑浜嗐傞偅涔堟垜浠湅array[3]搴旇鏀句粈涔堬紝濡傛灉index[3]==2,鍒氬ソ鎴戜滑鎶妕mp鏀懼洖鍘匯?br />涓嶇劧錛屾垜浠戶緇寜榪欎釜閾炬壘涓嬪幓銆?br />濡傛灉閾鵑暱涓簒.閭d箞鎴戜滑闇瑕亁+1嬈″鍒躲?br />閾鵑暱鏈灝忎負2.鎵浠ユ垜浠渶澶氬彧闇瑕?N/2嬈″鍒跺嵆鍙?br />
聽聽聽聽if(array==NULL||len<=0)聽return聽0;
聽聽聽聽
聽聽聽聽//绱㈠紩鏁扮粍
聽聽聽聽int聽*index聽=聽malloc(sizeof(int)*(len));
聽聽聽聽if(index==NULL)聽return聽0;
聽聽聽聽int聽i,j,largest,tmp,tmp2;
聽聽聽聽for(i=0;i<len;++i){
聽聽聽聽聽聽聽聽index[i]聽=聽i;
聽聽聽聽}
聽聽聽聽//鎻掑叆鎺掑簭
聽聽聽聽for(i=1;i<len;++i){
聽聽聽聽聽聽聽聽tmp聽=聽index[i];
聽聽聽聽聽聽聽聽for(j=i;j-1>=0&&array[index[j-1]]>array[tmp];--j){
聽聽聽聽聽聽聽聽聽聽聽聽index[j]聽=聽index[j-1];
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽index[j]聽=聽tmp;
聽聽聽聽}
聽聽聽聽for(i=0;i<len;++i){
聽聽聽聽聽聽聽聽//濡傛灉index[i]==i錛岃鏄巃rray[i]宸茬粡鏀懼埌浜嗘渶緇堢殑鍦版柟銆?/span>
聽聽聽聽聽聽聽聽if(聽index[i]聽==聽i)
聽聽聽聽聽聽聽聽聽聽聽聽continue;
聽聽聽聽聽聽聽聽else{
聽聽聽聽聽聽聽聽聽聽聽聽tmp聽=聽array[i];
聽聽聽聽聽聽聽聽聽聽聽聽j聽=聽i;
聽聽聽聽聽聽聽聽聽聽聽聽while(聽index[j]!=i聽){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//array[j]搴旇鏀劇殑鏄痑rray[index[j]]
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽array[j]聽=聽array[index[j]];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽tmp2聽=聽j;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽j聽=聽index[j];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//鍘熸潵鐨刟rray[j]宸茬粡鏀懼ソ浜?/span>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽index[tmp2]聽=聽tmp2;
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽array[j]聽=聽tmp;
聽聽聽聽聽聽聽聽聽聽聽聽index[j]聽=聽j;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽return聽1;
}
]]>
Shell鎺掑簭鐨勬ц兘鍙栧喅浜庨掑搴忓垪鐨勯夋嫨銆備笅闈唬鐮佺殑閫掑搴忓垪鏄痩en/2,len/4...,1.
{
聽聽聽聽if(array==NULL||begin>end)聽return聽0;
聽聽聽聽int聽len聽=聽end-begin+1;
聽聽聽聽int聽i,j,gap,tmp;
聽聽聽聽for(gap=len/2;gap>=1;gap/=2){
聽聽聽聽聽聽聽for(i=begin+gap;i<=end;++i){
聽聽聽聽聽聽聽聽聽聽聽j聽=聽i;
聽聽聽聽聽聽聽聽聽聽聽tmp聽=聽array[j];
聽聽聽聽聽聽聽聽聽聽聽while(聽j-gap>=begin&&array[j-gap]>tmp聽){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽array[j]聽=聽array[j-gap];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽j-=gap;
聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽array[j]聽=聽tmp;
聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽return聽1;
}
]]>
鍐呭瓨瀵歸綈鏄笌澶勭悊鍣紝緙栬瘧鍣紝緙栬瘧閫夐」鐩稿叧鐨勶紝鍥犳鍗曠函緇欏嚭涓涓猻truct錛岄棶鍏秙izeof鏄灝戯紝榪欐牱鐨勯棶娉曟槸涓嶄弗璋ㄧ殑銆傚洖絳旇闂錛屽簲璇ュ姞浠ヨ鏄庤繍琛岀幆澧冦?br />vc鐨勯粯璁ゅ榻愭ā鏁版槸錛歴izeof(璇ョ被鍨?
gcc鐨勯粯璁ゅ榻愯鍒欐槸錛歜yte涓?,char涓?,鍏朵粬鍧囦負4.
鐢變笂鍙煡
struct s{
聽char c;
聽double d;
};
gcc涓?br />sizeof(s) = 4+8 錛?12
vc涓?br />sizeof(s) = 8+8 = 16
閭d箞 struct s{
double d;
char c;
};
璧峰垵鎴戣涓篶浠ュ悗涓嶉渶瑕佸~鍏咃紝鍥犳gcc涓媠izeof(s)=8+1 = 9銆備絾浜嬪疄搴旇鏄痵izeof(s)==8+4 = 12銆?br />鍥犱負瀵逛簬鏁扮粍鏉ヨ錛岃淇濊瘉鏁扮粍鐨勫ぇ灝忕瓑浜庢暟緇勭殑涓暟涔樹互鍏冪礌鐨勫ぇ灝忋傚洜姝涔嬪悗涔熸槸闇瑕佸~鍏呯殑,榪欐牱鍚庣畫鐨勫厓绱犵殑鍦板潃鎵嶄細鏄瓧闀跨殑鍊嶆暟銆?br />
]]>
鍐掓場鎺掑簭錛?br />
{
聽聽聽聽if(array==NULL||begin>end)聽return聽0;
聽聽聽聽int聽i,j;
聽聽聽聽for(i=end;i>begin;--i){
聽聽聽聽聽聽聽聽for(j=begin;j<i;++j){
聽聽聽聽聽聽聽聽聽聽聽聽if(聽array[j]>array[j+1]聽){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽int聽tmp聽=聽array[j];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽array[j]聽=聽array[j+1];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽array[j+1]聽=聽tmp;
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽return聽1;
}
聽聽聽聽if(array==NULL||begin>end)聽return聽0;
聽聽聽聽int聽i,j,largest,tmp;
聽聽聽聽for(i=end;i>begin;--i){
聽聽聽聽聽聽聽聽largest聽=聽i;
聽聽聽聽聽聽聽聽for(j=begin;j<=i;++j){
聽聽聽聽聽聽聽聽聽聽聽聽if(聽array[largest]<array[j]聽)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽largest聽=聽j;
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽tmp聽=聽array[i];
聽聽聽聽聽聽聽聽array[i]聽=聽array[largest];
聽聽聽聽聽聽聽聽array[largest]聽=聽tmp;
聽聽聽聽}
聽聽聽聽return聽1;
}
]]>
static
聽
void
聽_merge(
int
聽
*
src,
int
聽begin,
int
聽end);
int
聽merge_sort(
int
聽
*
array,
int
聽begin,
int
聽end)
{
聽聽聽聽
if
(array
==
NULL
||
begin
>
end)聽
return
聽
0
;
聽聽聽
int
聽mid聽
=
聽begin
+
(end
-
begin)
/
2
;
聽聽 merge_sort(src,begin,mid);
聽聽 merge_sort(src,mid
+
1
,end);
聽聽聽_merge(src,begin,end);
聽聽聽 return 1;
}
static
聽
void
聽_merge(
int
聽
*
src,
int
聽begin,
int
聽end)
{
聽聽聽聽
int
聽mid聽
=
聽begin
+
(end
-
begin)
/
2
;
聽聽聽聽
int
聽b1聽
=
聽begin;
聽聽聽聽
int
聽e1聽
=
聽mid;
聽聽聽聽
int
聽b2聽
=
聽mid
+
1
;
聽聽聽聽
int
聽e2聽
=
聽end;
聽聽聽聽
int
聽
*
dest聽
=
聽malloc(
sizeof
(
int
)
*
(end
-
begin
+
1
));
聽聽聽聽
if
(dest
==
NULL)聽
return
;
聽聽聽聽
int
聽i1;
聽聽聽聽
int
聽i2;
聽聽聽聽
int
聽i;
聽聽聽聽
for
(i1
=
b1,i2
=
b2,i
=
begin;i1
<=
e1
&&
i2
<=
e2
&&
i
<=
end;
++
i){
聽聽聽聽聽聽聽聽
if
(src[i1]
<
src[i2]){
聽聽聽聽聽聽聽聽聽聽聽聽dest[i
-
begin]聽
=
聽src[i1];
聽聽聽聽聽聽聽聽聽聽聽聽i1
++
;
聽聽聽聽聽聽聽聽}
else
{
聽聽聽聽聽聽聽聽聽聽聽聽dest[i
-
begin]聽
=
聽src[i2];
聽聽聽聽聽聽聽聽聽聽聽聽i2
++
;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽
for
(;i
<=
end
&&
i1
<=
e1;
++
i,
++
i1)
聽聽聽聽聽聽聽dest[i
-
begin]聽
=
聽src[i1];
聽聽聽聽
for
(;i
<=
end
&&
i2
<=
e2;
++
i,
++
i2)
聽聽聽聽聽聽聽dest[i
-
begin]聽
=
聽src[i2];
聽聽聽聽
for
(i
=
begin;i
<=
end;
++
i)
聽聽聽聽聽聽聽聽src[i]聽
=
聽dest[i
-
begin];
聽聽聽聽free(dest);
}
鍋氫竴浜涘皬浼樺寲錛屽彧鍒涘緩涓嬈′復鏃舵暟緇勩?br />
void聽mergesort(int聽*array,int聽len)
{
聽聽聽聽int聽i,*tmp;
聽聽聽聽if(array==NULL||len==0)
聽聽聽聽聽聽聽聽return;
聽聽聽聽tmp聽=聽(int*)malloc(sizeof(int)*len);
聽聽聽聽_mergesort(array,tmp,0,len-1);
聽聽聽 free(tmp);
}
void聽_mergesort(int聽*array,int聽*tmp,int聽start,int聽end)
{
聽聽聽聽int聽mid聽=聽(start+end)/2;
聽聽聽聽int聽i,j,k;
聽聽聽聽if(start>=end)
聽聽聽聽聽聽聽聽return;
聽聽聽聽
聽聽聽聽_mergesort(array,tmp,start,mid);
聽聽聽聽_mergesort(array,tmp,mid+1,end);
聽聽聽i聽=聽start;
聽聽聽j聽=聽mid+1;
聽聽聽for(k=start;k<=end&&i<=mid&&j<=end;++k){
聽聽聽聽聽聽聽if(array[i]<array[j]){
聽聽聽聽聽聽聽聽聽聽聽tmp[k]聽=聽array[i];
聽聽聽聽聽聽聽聽聽聽聽i++;
聽聽聽聽聽聽聽}else{
聽聽聽聽聽聽聽聽聽聽聽tmp[k]=聽array[j];
聽聽聽聽聽聽聽聽聽聽聽j++;
聽聽聽聽聽聽聽}
聽聽聽}
聽聽聽for(;i<=mid;++i)
聽聽聽聽聽聽聽tmp[k++]=array[i];
聽聽聽for(;j<=end;++j)
聽聽聽聽聽聽聽tmp[k++]=array[j];
聽聽聽聽聽聽
聽聽memcpy(&array[start],&tmp[start],sizeof(int)*(end-start+1));聽
}
聽聽聽
]]>
static
聽
void
聽_adjust_heap(
int
聽
*
array,
int
聽idx,
int
聽len);
int
聽heap_sort(
int
聽
*
array,
int
聽begin,
int
聽end)
{
聽聽聽聽
if
(array
==
NULL
||
begin
>
end)聽
return
聽
0
;
聽聽聽聽
//
鑷浠ュ悗錛宨ndex浠?寮濮嬨?/span>
聽聽聽聽array
--
;
聽聽聽聽
int
聽len聽
=
聽end
-
begin
+
1
;
聽聽聽聽_build_heap(array,len);
聽聽聽聽
int
聽tmp;
聽聽聽聽
int
聽i;
聽聽聽聽
for
(i
=
1
;i
<
len;
++
i){
聽聽聽聽聽聽聽聽tmp聽
=
聽array[len
-
i
+
1
];
聽聽聽聽聽聽聽聽array[len
-
i
+
1
]聽
=
聽array[
1
];
聽聽聽聽聽聽聽聽array[
1
]聽
=
聽tmp;
聽聽聽聽聽聽聽聽_adjust_heap(array,
1
,len
-
i);
聽聽聽聽}
}
//
input:聽浠繪剰鏁扮粍聽output:澶ч《鍫?/span>
static
聽
void
聽_build_heap(
int
聽
*
array,
int
聽len)
{
聽聽聽
int
聽i;
聽聽聽
for
(i
=
len
/
2
;i
>=
1
;
--
i){
聽聽聽聽聽聽聽聽_adjust_heap(array,i,len);
聽聽聽}
}
//
浣塊噸鏂頒嬌array婊¤凍鍫嗙壒鎬?/span>
static
聽
void
聽_adjust_heap(
int
聽
*
array,
int
聽idx,
int
聽len)
{
聽聽聽聽
int
聽left;
聽聽聽聽
int
聽right;
聽聽聽聽
int
聽larger聽
=
聽idx;
聽聽聽聽
int
聽tmp聽
=
聽array[idx];
聽聽聽聽left聽
=
聽(idx
<<
1
);
聽聽聽聽right聽
=
聽left
+
1
;
聽聽聽聽
while
(聽left
<=
聽len){
聽聽聽聽聽聽聽聽
if
(right
<=
len
&&
array[right]
>
array[left]){
聽聽聽聽聽聽聽聽聽聽聽聽larger聽
=
聽right;聽
聽聽聽聽聽聽聽聽}
else
{
聽聽聽聽聽聽聽聽聽聽聽聽larger聽
=
聽left;
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
if
(聽array[larger]
>
tmp聽){
聽聽聽聽聽聽聽聽聽聽聽聽array[idx]聽
=
聽array[larger];
聽聽聽聽聽聽聽聽聽聽聽聽idx聽
=
聽larger;
聽聽聽聽聽聽聽聽聽聽聽聽left聽
=
聽(idx
<<
1
);
聽聽聽聽聽聽聽聽聽聽聽聽right聽
=
聽left
+
1
;
聽聽聽聽聽聽聽聽}
else
{
聽聽聽聽聽聽聽聽聽聽聽聽
break
;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽array[idx]聽
=
聽tmp;
}
]]>
緙虹偣錛氬浜庢帓濂藉簭鐨勮緭鍏ワ紝鏃墮棿澶嶆潅搴︿負O(n^2)
static聽int聽partition(int聽*array,int聽start,int聽end);
int聽quicksort(int聽*array,int聽start,int聽end)
{
聽聽聽聽if(array==NULL||start>end)聽return聽0;
聽聽聽聽int聽t聽=聽partition(array,start,end);
聽聽聽聽quicksort(array,start,t-1);
聽聽聽聽quicksort(array,t+1,end);
聽聽聽聽return聽1;
}
static聽int聽partition(int聽*array,int聽start,int聽end)
{
聽聽聽聽int聽pivot聽=聽array[start];聽聽聽聽
聽聽聽聽int聽i聽=聽start;
聽聽聽聽int聽j聽=聽end;
聽聽聽聽while(聽i<j聽){
聽聽聽聽聽聽聽聽while( j>i&& array[j]>=pivot)聽j--;
聽聽聽聽聽聽聽聽array[i]聽=聽array[j];
聽聽聽聽聽聽聽聽while( j>i&& array[i]<=pivot )聽i++;
聽聽聽聽聽聽聽聽array[j]聽=聽array[i];
聽聽聽聽}
聽聽聽聽array[i]聽=聽pivot;
聽聽聽聽return聽i;
}
鏀硅繘錛氬皬鏁扮粍鐩存帴鐢ㄦ彃鍏ユ帓搴忓疄鐜幫紝涓灑鍊煎彇(begin,mid,end)涓夎呯殑涓棿鍊鹼紝瀵規湁搴忔暟緇勬帓搴忎粛涓篛(nlogn)銆傚噺灝戜簡杈圭晫鏉′歡媯鏌?br />緙虹偣錛氱紪鐮佸鏉傘?br />
#include聽<stdlib.h>
#include聽<memory.h>
#define聽SMALL_N聽10
static聽int聽partition(int聽*array,int聽begin,int聽end);
void聽_quicksort(int聽*array,int聽begin,int聽end);
void聽insertsort(int聽*array,int聽len)
{
聽聽聽聽int聽i;
聽聽聽聽if(array==NULL||len==0)
聽聽聽聽聽聽聽聽return;
聽聽聽聽for(i=1;i<len;++i){
聽聽聽聽聽聽聽聽int聽temp聽=聽array[i];
聽聽聽聽聽聽聽聽int聽j;
聽聽聽聽聽聽聽聽for(j=i;j>=1&&temp<array[j-1];--j){
聽聽聽聽聽聽聽聽聽聽聽聽array[j]聽=聽array[j-1];
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽array[j]聽=聽temp;
聽聽聽聽}
}
int聽quicksort(int聽*array,int聽len)
{
聽聽聽聽if(array==NULL||len==0)
聽聽聽聽聽聽聽聽return;
聽聽聽聽_quicksort(array,0,len-1);
}
void聽_quicksort(int聽*array,int聽begin,int聽end)
{
聽聽聽聽int聽pivot;
聽聽聽聽int聽pivot_pos;
聽聽聽聽if(end-begin+1<=SMALL_N){
聽聽聽聽聽聽聽聽insertsort(&array[begin],end-begin+1);
聽聽聽聽聽聽聽聽return;
聽聽聽聽}
聽聽聽聽pivot_pos聽=聽partition(array,begin,end);
聽聽聽聽_quicksort(array,begin,pivot_pos-1);
聽聽聽聽_quicksort(array,pivot_pos+1,end);
}
static聽int聽聽mid3(int聽*array,int聽begin,int聽end)
{
聽聽聽聽int聽mid聽=聽(end-begin)/2+begin;
聽聽聽聽int聽tmp;
聽聽聽聽tmp聽=聽array[mid];
聽聽聽聽if(tmp<array[begin]){
聽聽聽聽聽聽聽聽array[mid]聽=聽array[begin];
聽聽聽聽聽聽聽聽array[begin]聽=聽tmp;
聽聽聽聽}
聽聽聽聽tmp聽=聽array[end];
聽聽聽聽if(tmp<array[mid]){
聽聽聽聽聽聽聽聽array[end]聽=聽array[mid];
聽聽聽聽聽聽聽聽if(tmp<array[begin]){
聽聽聽聽聽聽聽聽聽聽聽array[mid]聽=聽array[begin];
聽聽聽聽聽聽聽聽聽聽聽array[begin]聽=聽tmp;
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽else{
聽聽聽聽聽聽聽聽聽聽聽聽array[mid]聽=聽tmp;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽tmp聽=聽array[end-1];
聽聽聽聽array[end-1]聽=聽array[mid];
聽聽聽聽array[mid]聽=聽tmp;
聽聽聽聽
聽聽聽聽return聽array[end-1];
}
static聽int聽partition(int聽*array,int聽begin,int聽end)
{
聽聽聽聽int聽pivot聽=聽mid3(array,begin,end);
聽聽聽聽int聽i,聽j;
聽聽聽聽int聽tmp;
聽聽聽聽i聽=聽begin;
聽聽聽聽j聽=聽end-1;
聽聽聽聽while(1){
聽聽聽聽聽聽聽聽while(array[++i]<pivot)聽;
聽聽聽聽聽聽聽聽while(array[--j]>pivot)聽;
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽if(i>j)
聽聽聽聽聽聽聽聽聽聽break;
聽聽聽聽聽聽聽tmp聽=聽array[j];
聽聽聽聽聽聽聽array[j]聽=聽array[i];
聽聽聽聽聽聽聽array[i]聽=聽tmp;
聽聽聽聽}
聽聽聽聽tmp聽=聽array[i];
聽聽聽聽array[i]聽=聽array[end-1];
聽聽聽聽array[end-1]聽=聽tmp;
聽聽聽聽return聽i;
}
]]>)
{
聽聽聽聽va_list聽args;
聽聽聽聽va_start(args,cmd);
聽聽聽聽vprintf(cmd,args); //蹇呴』鐢╲printf
聽聽聽聽va_end(args);
}
]]>
鐢╨ast璁板綍鏈灝忕殑鈥滀笉鑳界粍鎴愮殑鏁扳濄傝繖鏍峰綋last涔嬪悗鏈塨oxs[0]涓繛緇暟閮藉彲浠ョ粍鎴愮殑璇濓紝閭d箞鎵鏈夌殑鏁伴兘鍙互緇勬垚銆?br />last+1...last+box[0]鍙互緇勬垚鐨勮瘽錛岄偅涔堟瘡涓暟閮藉姞涓涓猙ox[0],閭d箞鏂頒竴杞殑box[0]涓暟涔熷彲浠ョ粍鎴愶紝浠ユ綾繪帹銆?br />
#include聽<fstream>
using聽namespace聽std;
ifstream聽fin("nuggets.in");
ofstream聽fout("nuggets.out");
#ifdef聽_DEBUG
#define聽out聽cout
#define聽in聽cin
#else
#define聽out聽fout
#define聽in聽fin
#endif
int聽box_num;
int聽boxs[10];
bool聽ok[256];
int聽gcd(int聽a,int聽b)
{
聽聽聽聽if(a<b)聽swap(a,b);
聽聽聽聽int聽tmp;
聽聽聽聽while(b!=0){
聽聽聽聽聽聽聽聽tmp聽=聽a;
聽聽聽聽聽聽聽聽a聽=聽b;
聽聽聽聽聽聽聽聽b聽=聽tmp%b;
聽聽聽聽}
聽聽聽聽return聽a;
}
void聽solve()
{
聽聽聽聽in>>box_num;
聽聽聽聽for(int聽i=0;i<box_num;++i)
聽聽聽聽聽聽聽聽in>>boxs[i];
聽聽聽聽sort(&boxs[0],&boxs[box_num]);
聽聽聽聽
聽聽聽聽int聽t聽=聽boxs[0];
聽聽聽聽for(int聽i=1;i<box_num;++i){
聽聽聽聽聽聽聽聽t聽=聽gcd(t,boxs[i]);
聽聽聽聽}
聽聽聽聽if(t!=1){
聽聽聽聽聽聽聽聽out<<0<<endl;
聽聽聽聽聽聽聽聽return;
聽聽聽聽}
聽聽聽聽memset(ok,0,sizeof(ok));
聽聽聽聽int聽last聽=聽0;
聽聽聽聽ok[0]聽=聽true;
聽聽聽聽int聽i=0;
聽聽聽聽while(true){
聽聽聽聽聽聽聽聽if(ok[i%256]){
聽聽聽聽聽聽聽聽聽聽聽聽ok[i%256]聽=聽0;
聽聽聽聽聽聽聽聽聽聽聽聽if(i-last>=boxs[0]){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽out<<last<<endl;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽return;
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽for(int聽x=0;x<box_num;++x){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ok[(i+boxs[x])%256]聽=聽true;
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽}else{
聽聽聽聽聽聽聽聽聽聽聽聽last聽=聽i;
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽++i;
聽聽聽聽}
}
int聽main(int聽argc,char聽*argv[])
{
聽聽聽聽solve();聽
聽聽聽聽return聽0;
}
Hubert ChenPROGRAM NAME: nuggets
INPUT FORMAT
Line 1: N, the number of packaging options Line 2..N+1: The number of nuggets in one kind of
box SAMPLE INPUT (file nuggets.in)
3
3
6
10OUTPUT FORMAT
The output file should contain a single line containing a single integer
that represents the largest number of nuggets that can not be represented
or 0 if all possible purchases can be made or if there is no bound to
the largest number.
SAMPLE OUTPUT (file nuggets.out)
17
]]>
鏁版嵁閲忔瘮杈冨皯錛岀敤鍥炴函娉曪紝dp涔熻銆?br />
#include聽<fstream>
using聽namespace聽std;
ifstream聽fin("rockers.in");
ofstream聽fout("rockers.out");
#ifdef聽_DEBUG
#define聽out聽cout
#define聽in聽cin
#else
#define聽out聽fout
#define聽in聽fin
#endif
int聽capacity[20];;
int聽songs[20];
int聽song_num,disk_num;
int聽res聽=聽0;
int聽cur;
void聽backtracing(int聽depth,int聽last)
{
聽聽聽聽if(depth==song_num){
聽聽聽聽聽聽聽聽if(cur>res){
聽聽聽聽聽聽聽聽聽聽聽聽res聽=聽cur;
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽return;
聽聽聽聽}
聽聽聽
聽聽聽 //濡傛灉鍚庨潰鎵鏈夌殑姝屾洸閮藉姞涓婅繕姣旀渶浼樺煎皬錛屽壀鏋?br />聽聽聽聽if(cur+song_num-depth<=res)
聽聽聽聽聽聽聽return;聽
聽聽聽聽for(int聽i=last;i<disk_num;++i){
聽聽聽聽聽聽聽聽 //濡傛灉褰撳墠姝屾洸闇瑕佸埢褰曪紝閭e彧闇鍒誨湪絎竴寮犺兘瑁呭緱涓嬬殑鍏夌洏涓娿?br />聽聽聽聽聽聽聽聽if(聽capacity[i]>=songs[depth]){
聽聽聽聽聽聽聽聽聽聽聽聽cur++;
聽聽聽聽聽聽聽聽聽聽聽聽capacity[i]-=songs[depth];
聽聽聽聽聽聽聽聽聽聽聽聽backtracing(depth+1,i);
聽聽聽聽聽聽聽聽聽聽聽聽capacity[i]+=songs[depth];
聽聽聽聽聽聽聽聽聽聽聽聽cur--;
聽聽聽聽聽聽聽聽聽聽聽聽break;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽 // 涓嶅埢褰撳墠姝屾洸
聽聽聽聽backtracing(depth+1,last);
}
void聽solve()
{
聽聽聽聽int聽c;
聽聽聽聽in>>song_num>>c>>disk_num;
聽聽聽聽for(int聽i=0;i<song_num;++i)
聽聽聽聽聽聽聽聽in>>songs[i];
聽聽聽聽for(int聽i=0;i<disk_num;++i)
聽聽聽聽聽聽聽聽capacity[i]聽=聽c;
聽聽聽聽backtracing(0,0);
聽聽聽聽out<<res<<endl;
}
int聽main(int聽argc,char聽*argv[])
{
聽聽聽聽solve();聽
聽聽聽聽return聽0;
}
]]>
#include聽<fstream>
#include聽<cmath>
using聽namespace聽std;
ifstream聽fin("fence9.in");
ofstream聽fout("fence9.out");
#ifdef聽_DEBUG
#define聽out聽cout
#define聽in聽cin
#else
#define聽out聽fout
#define聽in聽fin
#endif
void聽solve()
{
聽聽聽聽int聽n,m,p;
聽聽聽聽in>>n>>m>>p;
聽聽聽聽int聽res聽=聽0;
聽聽聽聽int聽s,e;
聽聽聽聽for(int聽y=1;y<m;++y){
聽聽聽聽聽聽聽聽s聽=聽n*y/m+1;
聽聽聽聽聽聽聽聽e聽=聽(聽y*(n-p)%m==0聽)聽?聽(y*(n-p)/m-1+p)聽:聽floor(((double)y*(n-p)/m)+p);
聽聽聽聽聽聽//聽聽out<<y<<"聽"<<s<<"聽"<<e<<endl;
聽聽聽聽聽聽聽聽res聽+=聽max(0,(e-s+1));
聽聽聽聽}
聽聽聽聽out<<res<<endl;
}
int聽main(int聽argc,char聽*argv[])
{
聽聽聽聽solve();聽
聽聽聽聽return聽0;
}
]]>
]]>
銆傛墍浠ユ垜浠塪p[1][start+1][end]鍜宒p[1][start][end-1]涓皬鐨勯偅涓涓?br />濡傛灉player==1錛岄偅鍙兘琚姩鐨勭瓑0鍏堥変簡銆?鍦ㄥ墿涓嬪尯孌典腑錛屽張浣滀負鍏堥夌殑瑙掕壊錛屽嵆player0銆?br />褰撳彧鏈変竴涓暟瀛楃殑鏃跺欙紝player0灝卞彧鏈夐夎繖涓紝player1灝辨病寰楅夛紝榪斿洖0.
浠g爜濡備笅錛?br />
#include聽<fstream>
using聽namespace聽std;
ifstream聽fin("game1.in");
ofstream聽fout("game1.out");
#ifdef聽_DEBUG
#define聽out聽cout
#define聽in聽cin
#else
#define聽out聽fout
#define聽in聽fin
#endif
int聽dp[2][100][100];
int聽sequence[100];
int聽score(int聽player,int聽start,int聽end)
{
聽聽聽聽if(dp[player][start][end]!=-1)
聽聽聽聽聽聽聽聽return聽dp[player][start][end];
聽聽聽聽if(start==end){
聽聽聽聽聽聽聽聽if(player==0)
聽聽聽聽聽聽聽聽聽聽聽聽dp[player][start][end]聽=聽sequence[start];
聽聽聽聽聽聽聽聽else聽
聽聽聽聽聽聽聽聽聽聽聽聽dp[player][start][end]聽=聽0;
聽聽聽聽}else{
聽聽聽聽聽聽聽聽int聽t1聽=聽score(0,start+1,end);
聽聽聽聽聽聽聽聽int聽t2聽=聽score(0,start,end-1);
聽聽聽聽聽聽聽聽if(player==0){
聽聽聽聽聽聽聽聽聽聽聽聽if(t1>t2){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dp[player][start][end]聽=聽sequence[end]+score(1,start,end-1);
聽聽聽聽聽聽聽聽聽聽聽聽}else{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dp[player][start][end]聽=聽sequence[start]+score(1,start+1,end);
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽}else{
聽聽聽聽聽聽聽聽聽聽聽聽if(t1>t2){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dp[player][start][end]聽=聽score(0,start,end-1);
聽聽聽聽聽聽聽聽聽聽聽聽}else{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dp[player][start][end]聽=聽score(0,start+1,end);
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽return聽dp[player][start][end];
}
void聽solve()
{
聽聽聽聽memset(dp,-1,sizeof(dp));
聽聽聽聽int聽size;
聽聽聽聽in>>size;
聽聽聽聽for(int聽i=0;i<size;++i)
聽聽聽聽聽聽聽聽in>>sequence[i];
聽聽聽聽out<<score(0,0,size-1)<<"聽"<<score(1,0,size-1)<<endl;
}
int聽main(int聽argc,char聽*argv[])
{
聽聽聽聽solve();聽
聽聽聽聽return聽0;
}
]]>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽int聽res聽=聽0;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(long聽long聽i=2;i*i<=N;++i){聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽while(N%i==0){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽res++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽N/=i;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽int聽r=0;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽while(res/4!=0){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽res/=4;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽r++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return聽r;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽int聽res聽=聽0;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽long聽long聽T聽=聽N;聽//澧炲姞榪欎竴琛屄犅犅犅犅犅犅犅犅犅犅犅?/span>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(long聽long聽i=2;i*i<=T;++i){聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽while(N%i==0){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽res++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽N/=i;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽int聽r=0;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽while(res/4!=0){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽res/=4;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽r++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽return聽r;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽
緇撴灉榪樻槸琚玞ha鎺変簡銆傚洜涓虹姱浜嗕竴涓弗閲嶇殑閿欒錛屾病鏈夌畻涓婃渶鍚庝竴涓川鍥犳暟錛岃繖涓川鍥犳暟鍙兘澶т簬sqrt(N)銆傚88==2*2*2*11銆?br />姝g‘浠g爜搴旇鏄?br />
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽int聽res聽=聽0;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽long聽long聽T聽=聽N;聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(long聽long聽i=2;i*i<=T;++i){聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽while(N%i==0){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽res++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽N/=i;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(N!=1)聽res++;聽//澧炲姞榪欎竴琛?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽int聽r=0;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽while(res/4!=0){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽res/=4;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽r++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽return聽r;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽
鏈鍚庢埧闂村彧鏈変竴浜鴻繃浜嗙浜岄銆?br />榪樺ソcha浜?涓紝涓嶇劧rating瑕佽穼涓嶅皯浜嗐傘?br />榪樺ソrating榪樻槸娑ㄤ簡涓鐐圭偣銆傘?br />澶矖蹇冧簡錛屼笉鐒跺氨搴旇鑳借繘div1浜嗐傘?br />
]]>
#include聽<fstream>
using聽namespace聽std;
ifstream聽fin("range.in");
ofstream聽fout("range.out");
#ifdef聽_DEBUG
#define聽out聽cout
#define聽in聽cin
#else
#define聽out聽fout
#define聽in聽fin
#endif
bool聽dp[250][250];
int聽side_len;
void聽input()
{
聽聽聽聽in>>side_len;
聽聽聽聽char聽t;
聽聽聽聽for(int聽i=0;i<side_len;++i){
聽聽聽聽聽聽聽聽for(int聽j=0;j<side_len;++j){
聽聽聽聽聽聽聽聽聽聽聽聽while(聽in.get(t)&&isspace(t)聽);
聽聽聽聽聽聽聽聽聽聽聽聽dp[i][j]聽=聽t-'0';
聽聽聽聽聽聽聽聽}
聽聽聽聽}
}
void聽solve()
{
聽聽聽聽input();
聽聽聽聽for(int聽w聽=聽2;w<=side_len;++w){
聽聽聽聽聽聽聽聽int聽cnt聽=聽0;
聽聽聽聽聽聽聽聽for(int聽i=0;i<side_len;++i){
聽聽聽聽聽聽聽聽聽聽聽聽for(int聽j=0;j<side_len;++j){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(i+w<=side_len&&j+w<=side_len){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dp[i][j]聽=聽dp[i][j]&&dp[i+1][j]&&dp[i][j+1]&&dp[i+1][j+1];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(dp[i][j])
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽cnt++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽if(cnt!=0){
聽聽聽聽聽聽聽聽聽聽聽聽out<<w<<"聽"<<cnt<<endl;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
}
int聽main(int聽argc,char聽*argv[])
{
聽聽聽聽solve();聽
聽聽聽聽return聽0;
}
]]>
dp[i][j][k][m][n] = min ( dp[i][j][k][m][n], dp[i-o[0]][j-o[1]][k-o[2]][m-o[3]][n-o[4]]+offer.cost);
analysis涓彁鍑虹敤鏈鐭礬寰勭殑鏂規硶鏉ヨВ錛屾濊礬寰堝閥濡欍傛妸鈥濊鏈変笉鍚岀鏁板拰鏁伴噺鐨勭墿鍝佲滅殑綃瓙鐪嬩綔緇撶偣錛屾妸offer浣滀負杈?鎶婅喘涔頒竴浠剁墿鍝佺殑鍘熷浠鋒牸鐪嬫垚涓縐嶉鍖栫殑offer)錛屾妸浠鋒牸浣滀負杈歸暱搴︺傝繖鏍峰氨杞崲鎴愪粠綃瓙(0,0,0,0,0)鍒版墍姹傜粨鐐圭殑鏈鐭礬寰勯棶棰樸?br />
浠g爜濡備笅:
#include聽<fstream>
using聽namespace聽std;
ifstream聽fin("shopping.in");
ofstream聽fout("shopping.out");
#ifdef聽_DEBUG
#define聽out聽cout
#define聽in聽cin
#else
#define聽out聽fout
#define聽in聽fin
#endif
int聽dp[6][6][6][6][6];
struct聽offer{
聽聽聽聽int聽pro_num;
聽聽聽聽int聽price;
聽聽聽聽int聽product[5];
聽聽聽聽int聽amount[5];
};
int聽offer_num;
offer聽offers[100];
int聽map[1000]; //product id鍒扳濇寜鐗╁搧鍑虹幇欏哄簭鎵緇欑殑緙栧彿鈥滅殑鏄犲皠
int聽price[1000];//product id瀵瑰簲鐨勭墿鍝佷環鏍?br />int聽product_num;//鐗╁搧鎬繪暟鐩?br />int聽products[5];//瀛樻斁product id
int聽amount[5];//product 鎵闇鐨勬暟閲?br />
void聽solve()
{
聽聽聽聽in>>offer_num;
聽聽聽聽for(int聽i=0;i<offer_num;++i){
聽聽聽聽聽聽聽聽in>>offers[i].pro_num;
聽聽聽聽聽聽聽聽for(int聽j=0;j<offers[i].pro_num;++j){
聽聽聽聽聽聽聽聽聽聽聽聽in>>offers[i].product[j]>>offers[i].amount[j];
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽in>>offers[i].price;
聽聽聽聽}
聽聽聽聽
聽聽聽聽int聽pro_idx聽=聽0;
聽聽聽聽in>>product_num;
聽聽聽聽for(int聽i=0;i<product_num;++i){
聽聽聽聽聽聽聽聽in>>products[i];
聽聽聽聽聽聽聽聽in>>amount[i];
聽聽聽聽聽聽聽聽in>>price[i];
聽聽聽聽聽聽聽聽map[聽products[i]聽]聽=聽i;
聽聽聽聽}
聽聽聽 //娌℃湁鎶樻墸鏃剁殑浠鋒牸
聽聽聽聽for(int聽i=0;i<=5;++i)
聽聽聽聽聽聽聽聽for(int聽j=0;j<=5;++j)
聽聽聽聽聽聽聽聽聽聽聽聽for(int聽k=0;k<=5;++k)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(int聽m=0;m<=5;++m)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(int聽n=0;n<=5;++n){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dp[i][j][k][m][n]聽=聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽price[0]*i+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽price[1]*j+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽price[2]*k+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽price[3]*m+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽price[4]*n;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽for(int聽i=0;i<=5;++i)
聽聽聽聽聽聽聽聽for(int聽j=0;j<=5;++j)
聽聽聽聽聽聽聽聽聽聽聽聽for(int聽k=0;k<=5;++k)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(int聽m=0;m<=5;++m)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(int聽n=0;n<=5;++n){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽int聽tmp[5];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(int聽s=0;s<offer_num;++s){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽memset(tmp,0,sizeof(tmp));聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(int聽t=0;t<offers[s].pro_num;++t){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽tmp[map[offers[s].product[t]]]聽=聽offers[s].amount[t];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(i>=tmp[0]&&j>=tmp[1]&&k>=tmp[2]&&m>=tmp[3]&&n>=tmp[4]){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dp[i][j][k][m][n]聽=聽min(聽dp[i][j][k][m][n],
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dp[i-tmp[0]][j-tmp[1]][k-tmp[2]][m-tmp[3]][n-tmp[4]]+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽offers[s].price);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽out<<dp[amount[0]][amount[1]][amount[2]][amount[3]][amount[4]]<<endl;
}
int聽main(int聽argc,char聽*argv[])
{
聽聽聽聽solve();聽
聽聽聽聽return聽0;
}
涓婇潰浠g爜鏈変釜涓ラ噸鐨刡ug錛岃阿璋㈢綉鍙嬧滄垜涔熷噾鐑椆"鎸囧嚭銆傜敱浜巑ap鎵鏈夊奸兘涓?銆傛墍浠ユ湭鍦ㄥ晢鍝佸垪琛ㄤ腑鍑虹幇鐨勫晢鍝佺殑map鍊奸兘涓?錛屽嵆閮芥槧灝勪負絎竴涓晢鍝併傜幇鏀規垚灝唌ap鍒濆鍖栦負-1錛屽茍澧炲姞鍒ゆ柇璇彞銆傛澶栧皢鍒濆鍖杁p鐨勮鍙ュ悎騫跺埌鍚庨潰錛屼互綆鍖栦唬鐮併?br />
#include聽<fstream>
using聽namespace聽std;
ifstream聽fin("shopping.in");
ofstream聽fout("shopping.out");
#ifdef聽_DEBUG
#define聽out聽cout
#define聽in聽cin
#else
#define聽out聽fout
#define聽in聽fin
#endif
int聽dp[6][6][6][6][6];
struct聽offer{
聽聽聽聽int聽pro_num;
聽聽聽聽int聽price;
聽聽聽聽int聽product[5];
聽聽聽聽int聽amount[5];
};
int聽offer_num;
offer聽offers[100];
int聽map[1000];
int聽price[1000];
int聽product_num;
int聽products[5];
int聽amount[5];
void聽solve()
{
聽聽聽聽in>>offer_num;
聽聽聽聽for(int聽i=0;i<offer_num;++i){
聽聽聽聽聽聽聽聽in>>offers[i].pro_num;
聽聽聽聽聽聽聽聽for(int聽j=0;j<offers[i].pro_num;++j){
聽聽聽聽聽聽聽聽聽聽聽聽in>>offers[i].product[j]>>offers[i].amount[j];
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽in>>offers[i].price;
聽聽聽聽}
聽聽聽聽
聽聽聽聽int聽pro_idx聽=聽0;
聽聽聽聽in>>product_num;
聽聽聽聽//2009.07.27淇敼
聽聽聽聽memset(map,-1,sizeof(map));
聽聽聽聽for(int聽i=0;i<product_num;++i){
聽聽聽聽聽聽聽聽in>>products[i];
聽聽聽聽聽聽聽聽in>>amount[i];
聽聽聽聽聽聽聽聽in>>price[i];
聽聽聽聽聽聽聽聽map[聽products[i]聽]聽=聽i;
聽聽聽聽}
聽聽聽聽for(int聽i=0;i<=5;++i)
聽聽聽聽聽聽聽聽for(int聽j=0;j<=5;++j)
聽聽聽聽聽聽聽聽聽聽聽聽for(int聽k=0;k<=5;++k)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(int聽m=0;m<=5;++m)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(int聽n=0;n<=5;++n){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dp[i][j][k][m][n]聽=聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽price[0]*i+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽price[1]*j+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽price[2]*k+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽price[3]*m+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽price[4]*n;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽int聽tmp[5];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(int聽s=0;s<offer_num;++s){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽memset(tmp,0,sizeof(tmp));聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for(int聽t=0;t<offers[s].pro_num;++t){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//2009.07.27淇敼
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(聽map[offers[s].product[t]]!=-1)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽tmp[map[offers[s].product[t]]]聽=聽offers[s].amount[t];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(i>=tmp[0]&&j>=tmp[1]&&k>=tmp[2]&&m>=tmp[3]&&n>=tmp[4]){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dp[i][j][k][m][n]聽=聽min(聽dp[i][j][k][m][n],
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dp[i-tmp[0]][j-tmp[1]][k-tmp[2]][m-tmp[3]][n-tmp[4]]+
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽offers[s].price);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽out<<dp[amount[0]][amount[1]][amount[2]][amount[3]][amount[4]]<<endl;
}
int聽main(int聽argc,char聽*argv[])
{
聽聽聽聽solve();聽
聽聽聽聽return聽0;
}
]]>
]]>
]]>
]]>
#include聽<fstream>
#include聽<set>
#include聽<queue>
using聽namespace聽std;
ifstream聽fin("msquare.in");
ofstream聽fout("msquare.out");
#ifdef聽_DEBUG
#define聽out聽cout
#define聽in聽cin
#else
#define聽out聽fout
#define聽in聽fin
#endif
int聽final[8];
set<int>visited;
char聽result[8*7*6*5*4*3*2*1+1];
struct聽queue_node{
聽聽聽聽int聽current[8];
聽聽聽聽queue_node聽*parent;
聽聽聽聽char聽op;
};
void聽op(int聽*current,char聽c)
{
聽聽聽聽int聽tmp;
聽聽聽聽switch(c){
聽聽聽聽聽聽聽聽case聽'A':
聽聽聽聽聽聽聽聽聽聽聽聽for(int聽i=0;i<4;++i)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽swap(current[i],current[7-i]);
聽聽聽聽聽聽聽聽聽聽聽聽break;
聽聽聽聽聽聽聽聽case聽'B':
聽聽聽聽聽聽聽聽聽聽聽聽tmp聽=聽current[3];
聽聽聽聽聽聽聽聽聽聽聽聽for(int聽i=3;i>=1;--i)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽current[i]聽=聽current[i-1];
聽聽聽聽聽聽聽聽聽聽聽聽current[0]聽=聽tmp;
聽聽聽聽聽聽聽聽聽聽聽聽tmp聽=聽current[4];
聽聽聽聽聽聽聽聽聽聽聽聽for(int聽i=4;i<=6;++i)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽current[i]聽=聽current[i+1];
聽聽聽聽聽聽聽聽聽聽聽聽current[7]聽=聽tmp;
聽聽聽聽聽聽聽聽聽聽聽聽break;
聽聽聽聽聽聽聽聽case聽'C':
聽聽聽聽聽聽聽聽聽聽聽聽tmp聽=聽current[6];
聽聽聽聽聽聽聽聽聽聽聽聽current[6]聽=聽current[5];
聽聽聽聽聽聽聽聽聽聽聽聽current[5]聽=聽current[2];
聽聽聽聽聽聽聽聽聽聽聽聽current[2]聽=聽current[1];
聽聽聽聽聽聽聽聽聽聽聽聽current[1]聽=聽tmp;
聽聽聽聽聽聽聽聽聽聽聽聽break;
聽聽聽聽}
}
int聽cur_value(int聽*cur)
{
聽聽聽聽int聽res聽=聽0;
聽聽聽聽for(int聽i=0;i<8;++i){
聽聽聽聽聽聽聽聽res*=10;
聽聽聽聽聽聽聽聽res+=cur[i];
聽聽聽聽}
聽聽聽聽return聽res;
}
void聽solve()
{
聽聽聽聽for(int聽i=0;i<8;++i){
聽聽聽聽聽聽聽聽in>>final[i];
聽聽聽聽}
聽聽聽聽queue<queue_node*>聽q;
聽聽聽聽queue_node聽*node聽=聽new聽queue_node;
聽聽聽聽for(int聽i=0;i<8;++i)
聽聽聽聽聽聽聽聽node->current[i]聽=聽i+1;
聽聽聽聽node->parent聽=聽NULL;
聽聽聽聽q.push(node);
聽聽聽聽while(聽!q.empty()聽){
聽聽聽聽聽聽聽聽queue_node聽*node聽=聽q.front();
聽聽聽聽聽聽聽聽q.pop();
聽聽聽聽聽聽聽聽int聽cur聽=聽cur_value(node->current);
聽聽聽聽聽聽聽聽if(聽visited.find(聽cur)聽!=聽visited.end())
聽聽聽聽聽聽聽聽聽聽聽聽continue;
聽聽聽聽聽聽聽聽visited.insert(cur);
聽聽聽聽聽聽聽聽bool聽ok聽=聽true;
聽聽聽聽聽聽聽聽for(int聽i=0;i<8;++i){
聽聽聽聽聽聽聽聽聽聽聽聽if(node->current[i]!=final[i]){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ok聽=聽false;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽break;
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽if(ok){
聽聽聽聽聽聽聽聽聽聽聽聽int聽i聽=聽0;
聽聽聽聽聽聽聽聽聽聽聽聽while(node->parent!=NULL){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽result[i++]聽=聽node->op;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽node=node->parent;
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽if(i==0){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽out<<0<<endl<<endl;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽exit(0);
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽out<<i<<endl;
聽聽聽聽聽聽聽聽聽聽聽聽int聽j;
聽聽聽聽聽聽聽聽聽聽聽聽i--;
聽聽聽聽聽聽聽聽聽聽聽聽for(j=0;i>=0;i--,j++){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽out<<result[i];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if(j%60==59)聽out<<endl;
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽if(j%60!=0)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽out<<endl;
聽聽聽聽聽聽聽聽聽聽聽聽exit(0);
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽for(char聽c='A';c<='C';++c){
聽聽聽聽聽聽聽聽聽聽聽聽queue_node聽*聽n聽=聽new聽queue_node;
聽聽聽聽聽聽聽聽聽聽聽聽memcpy(n->current,node->current,sizeof(node->current));
聽聽聽聽聽聽聽聽聽聽聽聽op(n->current,c);
聽聽聽聽聽聽聽聽聽聽聽聽n->op聽=聽c;
聽聽聽聽聽聽聽聽聽聽聽聽n->parent聽=聽node;
聽聽聽聽聽聽聽聽聽聽聽聽q.push(n);
聽聽聽聽聽聽聽聽}
聽聽聽聽}
}
int聽main(int聽argc,char聽*argv[])
{
聽聽聽聽solve();聽
聽聽聽聽return聽0;
}
]]>
#include聽<fstream>
using聽namespace聽std;
ifstream in("spin.in");
ofstream out("spin.out");
struct聽wedge{
聽聽聽聽int聽start;
聽聽聽聽int聽extent;
};
int聽speed[5];
wedge聽wedges[5][5];
int聽wedge_num[5];
void聽onesecond()
{
聽聽聽for(int聽i=0;i<5;++i){
聽聽聽聽聽聽聽for(int聽j=0;j<wedge_num[i];++j){
聽聽聽聽聽聽聽聽聽聽聽wedges[i][j].start+=speed[i];
聽聽聽聽聽聽聽聽聽聽聽wedges[i][j].start%=360;
聽聽聽聽聽聽聽}
聽聽聽}聽
}
bool聽isok()
{
聽聽聽聽int聽tmp[360];
聽聽聽聽memset(tmp,0,sizeof(tmp));
聽聽聽聽for(int聽i=0;i<5;++i){
聽聽聽聽聽聽聽聽for(int聽j=0;j<wedge_num[i];++j){
聽聽聽聽聽聽聽聽聽聽聽聽for(int聽k=0;k<=wedges[i][j].extent;++k)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽tmp[(wedges[i][j].start+k)%360]++;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽for(int聽i=0;i<360;++i)
聽聽聽聽聽聽聽聽if(tmp[i]==5)
聽聽聽聽聽聽聽聽聽聽聽聽return聽true;
聽聽聽聽return聽false;
}
void聽solve()
{
聽聽聽聽for(int聽i=0;i<5;++i){
聽聽聽聽聽聽聽聽in>>speed[i];
聽聽聽聽聽聽聽聽in>>wedge_num[i];
聽聽聽聽聽聽聽聽for(int聽j=0;j<wedge_num[i];++j){
聽聽聽聽聽聽聽聽聽聽聽聽in>>wedges[i][j].start>>wedges[i][j].extent;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽if(isok()){
聽聽聽聽聽聽聽聽out<<0<<endl;
聽聽聽聽聽聽聽聽return;
聽聽聽聽}
聽聽聽聽for(int聽i=1;i<=360;++i){
聽聽聽聽聽聽聽聽onesecond();
聽聽聽聽聽聽聽聽if(isok()){
聽聽聽聽聽聽聽聽聽聽聽聽out<<i<<endl;
聽聽聽聽聽聽聽聽聽聽聽聽return;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽out<<"none"<<endl;
}
int聽main(int聽argc,char聽*argv[])
{
聽聽聽聽solve();聽
聽聽聽聽return聽0;
}
]]>