codeforces37C

CF37C Древнеберляндский Язык

 

 золь: Аналоговое прямое насилие продолжается, добавил, чтобы компенсировать длину 0, +1 по количеству Минато, Минато плохо ставит ( «нет»)

# include <бит / STDC ++ ч.>
 с использованием  пространства имен STD; 
ЬурейиЙ INT Л.Л.; 
встроенный LL чтения () 
{ 
    LL с = 0 ; BOOL е = 0 ; символ CH = '  ' ;
    в то время как (! isdigit (ч)) {е | = (гл == ' - ' ); ч = GetChar ();}
     , а (isdigit (ч)) {s = (s << 3 ) + (с << 1 ) + (ч ^ 48 ); ч = GetChar ();}
     возвращение (е) (-? s) :( с); 
} 
#Define Р (х) = х для чтения ()
рядные недействительные записи (LL х) 
{ 
    если (х < 0 ) {putchar ( ' - ' ); х = - х;}
     если (х < 10 ) {putchar (х + ' 0 ' ); возвращать ;} 
    запись (х / 10 ); putchar ((х% 10 ) + ' 0 ' ); 
} 
#Define Вт (х) записи (х), putchar ( ' ')
 #define Wl (х) записи (х), putchar (' \ п')
 Const  INT N = 1005 ;
INT п, пп, а [N], B [N], C [N]; 
вектор< Строка > анс;
#define РВ push_back
 BOOL используется [N]; 
встроенный BOOL добавить ( строка & s) 
{ 
    Int I; 
    с [s.size () - 1 ] ++ ;
    для (я = s.size () - 1 ; я> 0 ; i--) , если (S [I] == ' 2 ' ) {s [I] = ' 0 ' ; S [i - 1 ] ++ ;}
     возвратные (с [ 0 ] == ' 2 ' )? 0 :1 ; 
} 
INT основных () 
{ 
    freopen ( " codeforces37C_data.in " , " г " , STDIN);
    Int I, J;
    Строка с; 
    Р (п); 
    для (я = 1 ; г <= п; я ++ ) 
    { 
        а [I] = Ь [I] = следующим образом (); с [а [я]] ++ ; 
    } 
    Рода (а + 1 , а + п + 1 ); пп = уникальный (а + 1 , а + п + 1 ) -а- 1 ; 
    а [ 0 ] = 0 ;
//    соиЬ << "NN =" << пп << епсИ; 
    для (я = 1 ; я <= пп; я ++ ) 
    { 
        для (J = а [i - 1 ] + 1 , J <= а [I]; j ++) S + = ' 0 ' ;
        BOOL FLG = 0 , оо;
        для (;;) 
        { 
//             соиЬ << "с =" << С [а [I]] << End L , ; 
            если (с [а [я]]!) перерыва ;
            если (FLG) 
            { 
                оо = добавить (с);
                если (! оо) возвращение путы ( "), 0 ; 
            } 
            FLG = 1 ; с [а [I]] - ; ans.PB (ы); 
        } 
        Оо = добавить (с); если ((оо) && (я = пп)!) возвращение путы ( " НЕТ " ), 0 ; 
    } 
//     соиЬ << "ans.size () =" << ans.size () << епсИ; 
    ставит ( " ДА " );
    для (я = 1 ; г <= п; я ++ ) 
    { 
        для (J = 0 ; J <ans.size (); j ++) если ! (ВНС [J] .size () == Ь [I] && ( используется [J]))
        {
            COUT << анс [J] << епсИ; б [J] = 1 ; перерыв ; 
        } 
    } 
    Возвращают  0 ; 
}
Просмотр кода

 

рекомендация

отwww.cnblogs.com/gaojunonly1/p/11323495.html