p2297_规划.cpp

来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· C++ 代码 · 共 30 行

CPP
30
字号
#include <stdio.h>
#include <string.h>
#define  MAXN     20

int      N , Cut [MAXN] , Add [MAXN] , Opt [1 << 19] , Pow2 [MAXN] , Boss;

main ()
{
     for ( int i = 0; i < MAXN; i ++ ) Pow2 [i] = 1 << i;
     while ( scanf ( "%d" , &N ) != EOF ) {
           N --;
           for ( int i = 0; i < N; i ++ ) scanf ( "%d%d" , &Cut [i] , &Add [i]);
           scanf ( "%d" , &Boss );
           Opt [0] = 100;
           int Tot = 1 << N , t;
           for ( int i = 1; i < Tot; i ++ ) {
               Opt [i] = -1;
               for ( int j = 0; j < N; j ++ ) if ( i & Pow2 [j] ) {
                   t = Opt [i ^ Pow2 [j]];
                   if ( t < Cut [j] ) continue;
                   t += Add [j] - Cut [j];
                   if ( t > Opt [i] ) Opt [i] = t;
               }
               if ( Opt [i] > 100 ) Opt [i] = 100;
           }
           if ( Opt [Tot - 1] >= Boss ) printf ( "clear!!!\n" );
           else printf ( "try again\n" );
     }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?