Submission #1337098

#TimeUsernameProblemLanguageResultExecution timeMemory
1337098JuanJLTornjevi (COCI25_tornjevi)C++20
61 / 110
278 ms589824 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#define fst first
#define snd second
#define pb push_back
#define forn(i,a,b) for(int i = a; i<b; i++)
#define ALL(x) x.begin(),x.end()
#define SZ(x) (int)x.size()
#define mset(a,v) memset(a,v,sizeof(a))
#define FIN ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
using namespace __gnu_pbds;
typedef long long ll;

template <typename T>
using iset = tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>;

#ifdef D
	#define debug(x) cout<<x
#else
	#define debug(x) //nothing
#endif

const int MAXN = 1000+5;

string color;


int main(){ FIN;
	ll n,q; cin>>n>>q;
	cin>>color;

	vector<vector<ll>> res(n,vector<ll>(n,0));
	forn(r,0,n){
		ll azul, rojo; azul=rojo=0;
		for(int i = r; i>=0; i--){
			

			if(color[i]=='P'){
				//rojo
				if(azul>0) azul--;
				rojo++;
			}else{
				//azul
				if(rojo>0) rojo--;
				azul++;
			}
			//cout<<i<<" "<<r<<" "<<rojo<<" "<<azul<<'\n';
			res[i][r]=rojo+azul;
		}
	}

	forn(i,0,q){
		ll l,r; cin>>l>>r;
		l--; r--;
		cout<<res[l][r]<<'\n';
	}
	
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...