Submission #531039

#TimeUsernameProblemLanguageResultExecution timeMemory
531039xuliuGrowing Trees (BOI11_grow)C++17
20 / 100
1096 ms1832 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long 
#define ld long double 
#define debug if(0)

const int mod = 1e9 + 7;
const ll infL = 1e18 + 7;
const int inf = 1e9 + 7;

void add(int &a, int b) { a = (a+b)%mod; }
int add(int a, int b, int c) { int res = (((a+b)%mod) + c)%mod; return res; }

int main() {
	ios_base::sync_with_stdio(0); cin.tie(0);
	int n, m; cin>>n>>m;
	vector<int> tr(n);
	for(int i=0; i<n; i++) {
		cin>>tr[i];
	}
	sort(tr.begin(), tr.end());
	debug {
		for(int i=0; i<n; i++) cerr<<tr[i]<<" ";
		cerr<<"\n";
	}
	while(m--) {
		char t; cin>>t;
		if(t == 'F') {
			int c, h; cin>>c>>h;
			int cnt = 0;
			for(int i=0; i<n; i++) {
				if(tr[i] >= h && cnt < c) {
					tr[i]++;
					cnt++;
					if(cnt > c) break;
				}
			}
			sort(tr.begin(), tr.end());
			debug {
				cerr<<"F "<<c<<" "<<h<<"\n";
				for(int i=0; i<n; i++) cerr<<tr[i]<<" ";
				cerr<<"\n";
			}
		}
		else {
			int a, b; cin>>a>>b;
			int ans = 0;
			for(int i=0; i<n; i++) {
				if(tr[i] > b) break;
				if(tr[i] >= a) ans++;
			}
			cout<<ans<<"\n";
		}
	}
}
#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...
#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...