Алгоритмы на С++
Решение задачи 6 главы 2
Солдаты инопланетной армии перед походом строятся в колонну, поворачиваясь к командиру правым или левым боком. По команде они начинают готовиться к движению. Если двое соседних солдат стоят лицом друг к другу, оба за одну секунду разворачиваются на 180o. Развороты разных пар солдат происходят одновременно. Армия сможет начать движение, если в колонне не будет солдат, стоящих лицом друг к другу. По начальному расположению солдат нужно определить, отправится ли когда-нибудь армия в поход, и если да, то через сколько секунд и какое общее количество разворотов выполнят солдаты.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
void itmathrepetitor_ru() { int stay,left,turn,tact; string s; cout<<"input: "; cin>>s; //www.itmathrepetitor.ru stay=left=turn=tact=0; for (int i=0; i<s.length(); i++) { if (s[i]=='>') { left++; //www.itmathrepetitor.ru if (stay>0) stay--; } else if (s[i]=='<') { turn+=left; tact=left+stay; if (left>0) //www.itmathrepetitor.ru stay++; } else break; } cout<<tact<<" "<<turn; } |