Submission #396962


Source Code Expand

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

#include "variance.h"

const int MAX_BIT = 1 << 17;

typedef long long ll;

struct BIT {
  int n;
  ll bits[MAX_BIT + 1];

  //BIT() { bzero(bits, sizeof(ll) * (MAX_BIT + 1)); }
  
  void init(int _n) { n = _n; }

  ll sum(int x) {
    ll s = 0;
    while (x > 0) {
      s += bits[x];
      x -= (x & -x);
    }
    return s;
  }

  void add(int x, ll v) {
    while (x <= n) {
      bits[x] += v;
      x += (x & -x);
    }
  }
};

int N, A[MAX_BIT];

BIT ais, ai2s;

void init(int n, int *a) {
  N = n;

  ais.init(n);
  ai2s.init(n);
  
  for (int i = 0; i < N; i++) {
    A[i] = a[i];
    ais.add(i + 1, A[i]);
    ai2s.add(i + 1, A[i] * A[i]);
  }
}

int variance(int i, int j) {
  ll suma = ais.sum(j + 1) - ais.sum(i);
  ll suma2 = ai2s.sum(j + 1) - ai2s.sum(i);
  ll k = j + 1 - i;
  //printf("v(%d,%d): suma=%lld, suma2=%lld\n", i, j, suma, suma2);
  
  ll v = (k * suma2 - suma * suma) / (k * k);
  return (int)v;
}

void update(int i, int x) {
  ll da = x - A[i], da2 = x * x - A[i] * A[i];
  A[i]=x;
  ais.add(i + 1, da);
  ai2s.add(i + 1, da2);
}

Submission Info

Submission Time
Task D - 分散 (Variance)
User tnakao
Language IOI-Style C++ (GCC 5.4.1)
Score 100
Code Size 1211 Byte
Status AC
Exec Time 2053 ms
Memory 3472 KB

Compile Error

./grader.cpp: In function ‘int main()’:
./grader.cpp:5: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./grader.cpp:8: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./grader.cpp:11: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./grader.cpp:14: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result

Judge Result

Set Name Subtask1 Subtask2
Score / Max Score 50 / 50 50 / 50
Status
AC × 10
AC × 10
Set Name Test Cases
Subtask1 subtask1/1, subtask1/10, subtask1/2, subtask1/3, subtask1/4, subtask1/5, subtask1/6, subtask1/7, subtask1/8, subtask1/9
Subtask2 subtask2/1, subtask2/10, subtask2/2, subtask2/3, subtask2/4, subtask2/5, subtask2/6, subtask2/7, subtask2/8, subtask2/9
Case Name Status Exec Time Memory
subtask1/1 AC 59 ms 1044 KB
subtask1/10 AC 50 ms 1132 KB
subtask1/2 AC 47 ms 1140 KB
subtask1/3 AC 34 ms 1136 KB
subtask1/4 AC 40 ms 1092 KB
subtask1/5 AC 50 ms 1092 KB
subtask1/6 AC 46 ms 1160 KB
subtask1/7 AC 50 ms 1124 KB
subtask1/8 AC 49 ms 1128 KB
subtask1/9 AC 45 ms 1048 KB
subtask2/1 AC 1920 ms 2700 KB
subtask2/10 AC 1676 ms 2028 KB
subtask2/2 AC 299 ms 3472 KB
subtask2/3 AC 1332 ms 3400 KB
subtask2/4 AC 2053 ms 1556 KB
subtask2/5 AC 465 ms 1576 KB
subtask2/6 AC 167 ms 3384 KB
subtask2/7 AC 1992 ms 1556 KB
subtask2/8 AC 773 ms 2836 KB
subtask2/9 AC 172 ms 3376 KB