Untitled

 avatar
user_5668965
c_cpp
a year ago
2.0 kB
6
Indexable
#define _ijps 0
#define _CRT_SECURE_NO_DEPRECATE
#pragma comment(linker, "/STACK:667772160")
#include <iostream>
#include <cmath>
#include <vector>
#include <time.h>
#include <map>
#include <set>
#include <deque>
#include <cstdio>
#include <cstdlib>
#include <unordered_map>
#include <bitset>
#include <algorithm>
#include <string>
#include <fstream>
#include <assert.h>
#include <list>
#include <cstring>
using namespace std;

#define name ""
typedef unsigned long long ull;
typedef long long ll;
#define mk make_pair
#define forn(i, n) for(ll i = 0; i < (ll)n; i++)
#define fornn(i, q, n) for(ll i = (ll)q; i < (ll)n; i++)
#define times clock() * 1.0 / CLOCKS_PER_SEC
#define inb push_back

struct __isoff{
	__isoff(){
		if (_ijps)
			freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);//, freopen("test.txt", "w", stderr);
		//else freopen(name".in", "r", stdin), freopen(name".out", "w", stdout);
		//ios_base::sync_with_stdio(0);
		srand(time(0));
		//srand('C' + 'T' + 'A' + 'C' + 'Y' + 'M' + 'B' + 'A');
	}
	~__isoff(){
		//if(_ijps) cout<<times<<'\n';
	}
} __osafwf;
const ull p1 = 31;
const ull p2 = 29;
const double eps = 1e-8;
const double pi = acos(-1.0);

const ll inf = 1e17 + 7;
const int infi = 1e9 + 7;
const ll dd = 3e5 + 7;
const ll mod = 1e9 + 7;

string s;
char t = '.';
int n, m;

int num, group;
bool ok[dd];

int main(){
	cin >> n >> m >> s;
	forn(i, n){
		if(s[i] == t){
			num++;
			if(i == 0 || s[i - 1] != t)
				group++;
			ok[i + 1] = 1;
		}
	}
	forn(i, m){
		int d;
		char c;
		scanf("%d %c", &d, &c);
		bool a = ok[d], b = c == t;
		if(a != b){
			if(a){
				num--;
			}
			else{
				num++;
			}
			if(ok[d - 1] && ok[d + 1] && !b){
				group++;
			}
			if(ok[d - 1] && ok[d + 1] && b){
				group--;
			}
			if(!ok[d - 1] && !ok[d + 1] && !b){
				group--;
			}
			if(!ok[d - 1] && !ok[d + 1] && b){
				group++;
			}
		}
		ok[d] = b;
		printf("%d\n", num - group);
	}
}
Editor is loading...
Leave a Comment