Submission #238755

#TimeUsernameProblemLanguageResultExecution timeMemory
238755Dynamic_CastPilot (NOI19_pilot)C++14
78 / 100
1086 ms3452 KiB
//#include <bits/stdc++.h> C++11
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cmath>
#include <stdio.h>
#include <time.h>
#include <iomanip>
#include <stdlib.h>
#include <list>
#include <stack>
#include <queue>
#include <climits>
#include <map>
#include <set>
#include <sstream>
using namespace std;
typedef long long ll;
typedef pair<int, int> pi;
typedef vector<int> vi;
#define PB push_back
#define MP make_pair
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    int N, Q, flag, f;
    cin >> N >> Q;
    vi height(N, 0);
    vi plane(Q, 0);
    flag = 1;
    f = 0;
    cin >> height[0];
    for (int i = 1; i < N; i++)
    {
        cin >> height[i];
        if (height[i] < height[i - 1])
        {
            f = 1;
        }
    }
    if (f == 1)
    {
        flag = 0;
    }
    for (int i = 0; i < Q; i++)
    {
        cin >> plane[i];
    }
    if (Q == 1 && plane[0]==1000000)
    {
        flag = 2;
    }
    int num;
    ll sum;
    int index;
    for (int i = 0; i < Q; i++)
    {
        sum = 0;
        if (flag == 0)
        {
            num = 0;
            for (int j = 0; j < N; j++)
            {
                num++;
                if (height[j] > plane[i])
                {
                    sum += ll(ll(num) * (num - 1)) / 2;
                    num = 0;
                }
                else
                {
                    if (j == N - 1)
                    {
                        sum += ll(ll(num) * (num + 1)) / 2;
                    }
                }
            }
            cout << sum << "\n";
        }
        if (flag == 1)
        {
            index = int(upper_bound(height.begin(), height.end(), plane[i]) - height.begin());
            cout << ll(ll(index) * (index + 1)) / 2 << "\n";
        }
        if (flag == 2)
        {
            cout<<ll(ll(N)*(N+1))/2<<"\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...