p1326.cpp
来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· C++ 代码 · 共 63 行
CPP
63 行
#include <stdio.h>
#include <string.h>
int N , K;
bool Left [50];
int len;
int Card [20];
bool init ()
{
if ( scanf ( "%d" , &N ) == EOF ) return false;
scanf ( "%d" , & K );
int i;
for ( i = 0;i < 20; i ++ ) scanf ( "%d" , &Card [i] );
memset ( Left , 0 , sizeof ( Left ) );
return true;
}
void Work ()
{
int i , j , k , s;
s = 0;
for ( k = 0; k < 20; k ++ ) {
for ( i = 0; i < N && Left [i]; i ++ );
while ( i < N ) {
for ( j = 0; j + 1 < Card [k]; j ++ ) {
i ++;
for ( ; i < N && Left [i]; i ++ );
if ( i == N ) break;
}
if ( i < N ) {
Left [i] = 1; s ++;
if ( s + K == N ) return;
for ( i ++; i < N && Left [i]; i ++ );
}
}
}
}
void Print ()
{
int i , first = 1;
for ( i = 0; i < N; i ++ ) if ( !Left [i] ) {
if ( first ) first = 0; else printf ( " " );
printf ( "%d" , i + 1 );
}
printf ( "\n\n" );
}
main ()
{
int step = 0;
while ( init () ) {
printf ( "Selection #%d\n" , ++ step );
Work ();
Print ();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?