CF37C Древнеберляндский Язык
![](https://img2018.cnblogs.com/blog/1432089/201908/1432089-20190808200443134-1001959748.png)
золь: Аналоговое прямое насилие продолжается, добавил, чтобы компенсировать длину 0, +1 по количеству Минато, Минато плохо ставит ( «нет»)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
# 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 ; }