[Offer收割]编程练习赛31 register

Ended

Participants:284

Verdict:Accepted
Score:100 / 100
Submitted:2017-10-15 13:03:44

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<iostream>
#include<vector>
#include<algorithm>
#define ll long long
using namespace std;
const int maxn = 1e5+10;
vector<int>a;
ll ans;
void calc(const vector<int>&ve)
{
    int n = ve.size();
    if(n==0) return;
    int l,r;
    //cout<<ve[0]<<" "<<ve[1]<<endl;
    l=0;bool f=1;
    for(int i=0;i<n;i++)
    {
        for(;l<n;l++)
        {
            if(ve[i]*8>=ve[l]-8&&ve[i]<=8*(ve[l]-8)&&(ve[i]>=88888||ve[l]<=88888))
                  break;
        }
        if(f){f=0;r=l;}
        for(;r<n;r++)
        {
            if(!(ve[i]*8>=ve[r]-8&&ve[i]<=8*(ve[r]-8)&&(ve[i]>=88888||ve[r]<=88888)))
                break;
        }
        ans+=r-l;
        if(i>=l&&i<=r&&l!=r)
            ans--;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX