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

Ended

Participants:284

Verdict:Accepted
Score:100 / 100
Submitted:2017-10-15 12:58:14

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 <stdio.h>
#include <bits/stdc++.h>
#define mod 1000000007
typedef long long ll;
using namespace std;  
int n;
ll cnt[100005];
ll sum[100005];
int main()  
{  
    cin>>n;
    int a;
    for(int i=1;i<=n;i++){
        scanf("%d",&a);
        cnt[a]++;
    }
    for(int i=1;i<=100000;i++) sum[i]+=sum[i-1]+cnt[i];
    ll ans=0;
    for(int i=1;i<=100000;i++){
        if(cnt[i]==0) continue;
        ll k1,k2,k3,p=0;
        k1=i/8+8;
        if(i%8==0) k1--;
        p+=sum[k1];
        if(i<=k1) p-=1;
        k2=8*i+8;
        if(i<88888){
            if(k2<88888){
                p+=sum[100000]-sum[k2]; 
            }else{
                p+=sum[100000]-sum[88888];  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX