Esta pregunta se le envía a compartir el título.
título
comentario
Pensando preguntas, me gustaría ver es extremadamente simple.
En primer lugar, tenga en cuenta las circunstancias en que se selló el vial:
Hay tres casos.
Así que, obviamente, no necesitamos cada vez de 1 an no hay manera de encontrarlo de nuevo, cada cambio de estado en una tela escocesa de comprobar el estado de otra columna tres rejilla puede ser. Y se almacena en una variable ans lo suficiente sobre el número total de rejilla carretera bloqueada. ans es cero SÍ, de lo contrario NO.
código
1 #include <bits / STDC ++ h.> 2 usando espacio de nombres std; 3 const int maxN = 100000 + 5 ; 4 bool un [maxN], b [maxN]; 5 int n, q; 6 int main () { 7 ios :: sync_with_stdio ( falso ); 8 cin >> n >> q; 9 int ans = 0 ; 10 para ( int i = 1 ; i <= q; i ++ ) { 11 int x, y; 12 cin >> x >> y; 13 si (x == 1 ) { 14 si (a [y]) { 15 una [y] = 0 ; 16 si (b [y]) ans-- ; 17 si (b [y + 1 ]) ans-- ; 18 si (b [y- 1 ]) ans-- ; 19 } 20 más { 21 una [y] = 1 ; 22 si (b [y]) ans ++ ; 23 si (b [y + 1 ]) ans ++ ; 24 si (b [y- 1 ]) ans ++ ; 25 } 26 } 27 más { 28 si (b [y]) { 29 b [y] = 0 ; 30 si (a [y]) ans-- ; 31 si (a [y + 1 ]) ans-- ; 32 si (a [y- 1 ]) ans-- ; 33 } 34 más { 35 b [y] = 1 ; 36 si (a [y]) ans ++ ; 37 si (a [y + 1 ]) ans ++ ; 38 si (a [y- 1 ]) ans ++ ; 39 } 40 } 41 si (ans) cout << " No " << endl; 42 otro tribunal << " Sí " << endl; 43 } 44 de retorno 0 ; 45 }
(Yo estaba jugando posterior mesa cuando la entrada-sentimiento)
Afortunadamente, incluso sagrados, canciones a blog canto.