Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma comment(linker, "/STACK:268435456")
- #define _CRT_SECURE_NO_WARNINGS
- #define _CRT_SECURE_NO_DEPRECATE
- #include <cstdio>
- #include <iostream>
- #include <algorithm>
- #include <cmath>
- #include <string>
- #include <vector>
- #include <set>
- #include <map>
- #include <deque>
- #include <queue>
- #include <list>
- #include <stack>
- #include <cstring>
- #include <cstdlib>
- #include <complex>
- #include <ctime>
- #include <bitset>
- #include <iomanip>
- #include <sstream>
- using namespace std;
- const double PI = 3.1415926535897932384626433832795;
- template<class T> T min(T &a, T &b) { return (a<b) ? a : b; }
- template<class T> T max(T &a, T &b) { return (a>b) ? a : b; }
- template<class T> T sqr(T &a) { return a*a; }
- template<class T> T abs(T &a) { return (a<0) ? (-a) : a; }
- typedef long long ll;
- typedef unsigned long long ull;
- typedef long double ld;
- typedef pair<int,int> ii;
- // int
- inline void read (int &x) { scanf ("%d", &x); }
- inline void readln (int &x) { scanf ("%d\n", &x); }
- inline void write (int x) { printf("%d", x); }
- inline void writeln(int x) { printf("%d\n", x); }
- // long long
- #ifdef _WIN32
- inline void read (ll &x) { scanf ("%I64d", &x); }
- inline void readln (ll &x) { scanf ("%I64d\n", &x); }
- inline void write (ll x) { printf("%I64d", x); }
- inline void writeln(ll x) { printf("%I64d\n", x); }
- #else
- inline void read (ll &x) { scanf ("%lld", &x); }
- inline void readln (ll &x) { scanf ("%lld\n", &x); }
- inline void write (ll x) { printf("%lld", x); }
- inline void writeln(ll x) { printf("%lld\n", x); }
- #endif
- // double
- inline void read (double &x) { scanf ("%lf", &x); }
- inline void readln (double &x) { scanf ("%lf\n", &x); }
- inline void write (double x) { printf("%.15lf", x); }
- inline void writeln(double x) { printf("%.15lf\n", x); }
- // string
- inline void read (char* s) { scanf ("%s" , s); }
- inline void readln (char* s) { scanf ("%s\n", s); }
- inline void write (char* s) { printf("%s" , s); }
- inline void writeln(char* s) { printf("%s\n", s); }
- // read methods
- inline int readInt() { int x; read(x); return x; }
- inline ll readLong() { ll x; read(x); return x; }
- inline double readDouble() { double x; read(x); return x; }
- #define all(v) (v).begin(),(v).end()
- #define sz(v) ((int)((v).size()))
- #define PB push_back
- #define MP make_pair
- #define CLR(a) memset((a),0,sizeof(a))
- #define FILL(a,x) memset((a),(x),sizeof(a))
- #define fori(i,n) for(int i=0;i<((int)(n));i++)
- #define forab(i,a,b) for(int i=((int)(a));i<=((int)(b));i++)
- #define forba(i,b,a) for(int i=((int)(b));i>=((int)(a));i--)
- //------------------------------------------------------------------------------
- int n;
- int a[100005];
- vector<int> ids[105];
- ll ans;
- inline void update(int i, int x) {
- if (i < 0 || i >= n) return;
- if (a[i] <= x) return;
- ans += a[i] - x;
- a[i] = x;
- ids[x].push_back(i);
- }
- int main()
- {
- #ifdef TEDDY_BEARS
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- #else
- //freopen("aaa.in", "r", stdin);
- //freopen("aaa.out", "w", stdout);
- #endif
- int T = readInt();
- for (int t = 1; t <= T; t++) {
- for (int x = 0; x <= 100; x++) {
- ids[x].clear();
- }
- read(n);
- for (int i = 0; i < n; i++) {
- read(a[i]);
- ids[a[i]].push_back(i);
- }
- ans = 0;
- for (int x = 0; x <= 100; x++) {
- for (int j = 0; j < sz(ids[x]); j++) {
- int i = ids[x][j];
- if (a[i] != x) continue;
- update(i-1, x+1);
- update(i+1, x+1);
- }
- }
- writeln(ans);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement