3138 2023. 02. 19 13:17:52 horvathabel Színezés cpp17 Elfogadva 50/50 509ms 5544 KiB

#include <bits/stdc++.h>
using namespace std;

int main() {
	int n,q; 
	cin>>n>>q;
	string s; 
	cin>>s;
	pair<int, int> ans={0,0}; 
	for (int i=0; i<n;i++){
		if (s[i]=='0'){
			ans.first++;
			int j=i;  
			while (s[j]=='0') j++;
			i=j-1;
		}
		else{
			ans.second++;
			int j=i;
			while (s[j]=='1') j++;
			i=j-1;
		}
	}
	cout<<min(ans.first,ans.second)<<endl;
	for (int i=0; i<q;i++){
		int z;
		cin>>z; 
		z--;
		if (s[z]=='0'){
			s[z]='1';
			if (z==0){
				if (s[1]=='1'){
					ans.first--;
					cout<<min(ans.first,ans.second)<<endl;
					}
				else{
					ans.second++;
					cout<<min(ans.first,ans.second)<<endl;
					}
			}
			else{
				if (z==n-1){
				if (s[z-1]=='1'){
					ans.first--;
					cout<<min(ans.first,ans.second)<<endl;
					}
				else{
					ans.second++;
					cout<<min(ans.first,ans.second)<<endl;
					}
				}
				else{
					if (s[z-1]=='1'){
						if (s[z+1]=='1'){
							ans.first--;
							ans.second--;
							cout<<min(ans.first,ans.second)<<endl;
							}
						else{
							cout<<min(ans.first,ans.second)<<endl;
							}

					}
					else{
						if (s[z+1]=='1'){
cout<<min(ans.first,ans.second)<<endl;
							}
						else{
							ans.first++;
							ans.second++;
cout<<min(ans.first,ans.second)<<endl;
							}
					}

			}

			}
		}
		else{
			s[z]='0';
			if (z==0){
				if (s[1]=='0'){
					ans.second--;
					cout<<min(ans.first,ans.second)<<endl;
					}
				else{
					ans.first++;
					cout<<min(ans.first,ans.second)<<endl;
					}
			}
			else{
				if (z==n-1){
					 if (s[z-1]=='1'){
						 ans.first++;
						 cout<<min(ans.first,ans.second)<<endl;
					 }
					 else{
						 ans.second--;
						 cout<<min(ans.first, ans.second)<<endl;
					 }
				}
			
				else{
				if (s[z-1]=='1'){
					if (s[z+1]=='1'){
						ans.second++;
						ans.first++;
						cout<<min(ans.first,ans.second)<<endl;
						}
					else{
						cout<<min(ans.first,ans.second)<<endl;
						}
				}
				else{
					if (s[z+1]=='1') cout<<min(ans.first,ans.second)<<endl;
					else{
						ans.first--;
						ans.second--;
						cout<<min(ans.first,ans.second)<<endl;
						}
				}
			}

		}
		}
	}
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1816 KiB
2 Elfogadva 0/0 4ms 2076 KiB
3 Elfogadva 2/2 3ms 2284 KiB
4 Elfogadva 2/2 3ms 2520 KiB
5 Elfogadva 3/3 3ms 2748 KiB
6 Elfogadva 3/3 3ms 2924 KiB
7 Elfogadva 3/3 4ms 2912 KiB
8 Elfogadva 3/3 4ms 2964 KiB
9 Elfogadva 2/2 4ms 3036 KiB
10 Elfogadva 2/2 4ms 3164 KiB
11 Elfogadva 3/3 296ms 4208 KiB
12 Elfogadva 3/3 379ms 4068 KiB
13 Elfogadva 3/3 504ms 4360 KiB
14 Elfogadva 3/3 465ms 4776 KiB
15 Elfogadva 3/3 282ms 5004 KiB
16 Elfogadva 3/3 298ms 5236 KiB
17 Elfogadva 3/3 495ms 5368 KiB
18 Elfogadva 3/3 441ms 5544 KiB
19 Elfogadva 3/3 509ms 5312 KiB
20 Elfogadva 3/3 293ms 5468 KiB