Submission #100408

#TimeUsernameProblemLanguageResultExecution timeMemory
100408shafinalamGrowing Trees (BOI11_grow)C++14
30 / 100
1078 ms2996 KiB
#include <bits/stdc++.h>

using namespace std;

const int mx = 1e5+5;
typedef long long ll;
typedef unsigned int ui;
typedef unsigned long long ull;
typedef pair<int,int>pii;
typedef pair<int,pii>piii;

#define  sf scanf
#define  pf printf

#define  input freopen("input.txt","r",stdin)
#define  output freopen("output.txt","w",stdout)

#define  inf 1e16
#define  ff first
#define  ss second
#define  MP make_pair
#define  pb push_back
#define  all(v) v.begin(), v.end()
#define  printcase(cases) printf("Case %d:", cases);
#define  Unique(a) a.erase(unique(a.begin(),a.end()),a.end())
#define  FAST  ios_base::sync_with_stdio(0);cout.tie(0)
#define  endl printf("\n")
#define  __lcm(a, b) ((a*b)/__gcd(a, b))

int  Set(int N,int pos){return N=N | (1<<pos);}
int  reset(int N,int pos){return N= N & ~(1<<pos);}
bool check(int N,int pos){return (bool)(N & (1<<pos));}

ll arr[mx];
char s[2];

int main()
{
    int n, m;
    sf("%d%d", &n, &m);

    for(int i = 0; i < n; i++) sf("%lld", &arr[i]);
    sort(arr, arr+n);

    while(m--)
    {

        sf("%s", s);
        if(s[0]=='F')
        {
            ll c, h;
            sf("%lld%lld", &c, &h);
            int ind = lower_bound(arr, arr+n, h)-arr;
            for(int i = ind; i < n && i < ind+c; i++) arr[i]++;
            sort(arr, arr+n);
        }
        else
        {
            ll a, b;
            sf("%lld%lld", &a, &b);
            int l = lower_bound(arr, arr+n, a)-arr;
            int r = upper_bound(arr, arr+n, b)-arr-1;
            pf("%d\n", r-l+1);
        }
    }
    return 0;
}

Compilation message (stderr)

grow.cpp: In function 'int main()':
grow.cpp:40:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     sf("%d%d", &n, &m);
       ^
grow.cpp:42:34: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i = 0; i < n; i++) sf("%lld", &arr[i]);
                                  ^
grow.cpp:48:11: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         sf("%s", s);
           ^
grow.cpp:52:15: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             sf("%lld%lld", &c, &h);
               ^
grow.cpp:60:15: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             sf("%lld%lld", &a, &b);
               ^
#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...