Submission #105931

#TimeUsernameProblemLanguageResultExecution timeMemory
105931asifthegreatGrowing Trees (BOI11_grow)C++14
40 / 100
1082 ms2424 KiB
#include <bits/stdc++.h> #define int long long #define all(v) v.begin(),v.end() #define keepUnique(a) sort(all(a));v.erase(unique(all(v)),v.end()) #define FAST ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); using namespace std; const int N = 100000; int ara[N],temp[N]; int32_t main() { int n,m,c,h; cin >> n >> m; for(int i = 0; i < n;i++){ cin >> ara[i]; } sort(ara,ara+n); char ch; while(m--){ cin >> ch; if(ch == 'F'){ //cout << "hola\n"; cin >> c >> h; int pos = 0; int lower = lower_bound(ara,ara+n,h)-ara; for (int i = lower; i < n and i < lower+c; i++){ ara[i]++; temp[pos++] = ara[i]; } int k = pos; int j = min(n,lower+c); int i = 0; pos = lower; for(;;){ if(pos == n)break; else if(j == n)ara[pos++] = temp[i++]; else if(i == k)ara[pos++] = ara[j++]; else if(temp[i] < ara[j]){ ara[pos++] = temp[i++]; } else ara[pos++] = ara[j++]; } //for(i = 0; i < n;i++){ //cout << ara[i] << " "; //}cout << endl; } else{ cin >> c >> h; int lower = lower_bound(ara,ara+n,c)-ara; int upper = upper_bound(ara,ara+n,h)-ara; cout << upper-lower << endl; } } 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...
#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...