Submission #2824983


Source Code Expand

#include<cstdio>
#include<algorithm>
#include<iostream>
#define N 1e9
using namespace std;
const int maxn = 3e5 + 5;
namespace SGT {
	struct node {
		int mn, add, ch[2];
	}t[maxn * 32];
	int cnt, root;
	int Create(int l, int r) {
		return t[++cnt] = (node) {l, 0, 0, 0}, cnt;
	}
	void push_up(int rt, int l, int r) {
		if(!t[rt].ch[0]) t[rt].ch[0] = Create(l, l + r >> 1);
		if(!t[rt].ch[1]) t[rt].ch[1] = Create(((l + r) >> 1) + 1, r);
		t[rt].mn = min(t[t[rt].ch[0]].mn, t[t[rt].ch[1]].mn);
	}
	void push_down(int rt, int l, int r) {
		if(t[rt].add) {
			int mid = l + r >> 1, *ls = &t[rt].ch[0], *rs = &t[rt].ch[1];
			if(!*ls) *ls = Create(l, mid);
			if(!*rs) *rs = Create(mid + 1, r);
			t[*ls].add += t[rt].add, t[*ls].mn += t[rt].add;
			t[*rs].add += t[rt].add, t[*rs].mn += t[rt].add;
			t[rt].add = 0;
		}
	}
	int Q(int l, int r, int tl, int tr, int & rt = root) {
		if(!rt) rt = Create(tl, tr);
		if(l == tl && r == tr) 
			return t[rt].mn;
		int mid = tl + tr >> 1;
		push_down(rt, tl, tr);
		if(r <= mid) return Q(l, r, tl, mid, t[rt].ch[0]);
		else if(l > mid) return Q(l, r, mid + 1, tr, t[rt].ch[1]);
		else return min(Q(l, mid, tl, mid, t[rt].ch[0]), Q(mid + 1, r, mid + 1, tr, t[rt].ch[1]));
	}
	void add(int l, int r, int tl, int tr, int dt, int & rt = root) {
		if(!rt) rt = Create(tl, tr);
		if(tl == l && tr == r) 
			return t[rt].add += dt, t[rt].mn += dt, void();
		int mid = tl + tr >> 1;
		push_down(rt, tl, tr);
		if(r <= mid) add(l, r, tl, mid, dt, t[rt].ch[0]);
		else if(l > mid) add(l, r, mid + 1, tr, dt, t[rt].ch[1]);
		else add(l, mid, tl, mid, dt, t[rt].ch[0]), add(mid + 1, r, mid + 1, tr, dt, t[rt].ch[1]);
		push_up(rt, tl, tr);
	}
}
int n, a[maxn], ans;
int main() {
	scanf("%d", &n);
	for(register int i = 1; i <= n; ++i)
		scanf("%d", &a[i]);
	for(register int i = 1; i <= n; ++i) {
		ans += SGT :: Q(a[i], N, 0, N) - a[i];
		SGT :: add(0, a[i] - 1, 0, N, 1);
	}
	printf("%d", ans);
	return 0;
}

Submission Info

Submission Time
Task B - Increment and Swap
User Rockdu
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1999 Byte
Status WA
Exec Time 221 ms
Memory 73600 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:54:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
                 ^
./Main.cpp:56:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &a[i]);
                     ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 1500
Status
AC × 2
AC × 15
WA × 51
Set Name Test Cases
Sample example0.txt, example1.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, 045.txt, 046.txt, 047.txt, 048.txt, 049.txt, 050.txt, 051.txt, 052.txt, 053.txt, 054.txt, 055.txt, 056.txt, 057.txt, 058.txt, 059.txt, 060.txt, 061.txt, 062.txt, 063.txt, example0.txt, example1.txt
Case Name Status Exec Time Memory
000.txt WA 165 ms 3968 KB
001.txt WA 165 ms 3968 KB
002.txt WA 165 ms 3968 KB
003.txt WA 166 ms 6016 KB
004.txt WA 167 ms 6016 KB
005.txt WA 167 ms 6016 KB
006.txt WA 168 ms 6016 KB
007.txt WA 168 ms 6016 KB
008.txt WA 169 ms 6016 KB
009.txt WA 169 ms 6016 KB
010.txt WA 170 ms 8064 KB
011.txt WA 171 ms 8064 KB
012.txt WA 171 ms 8064 KB
013.txt WA 171 ms 8064 KB
014.txt WA 171 ms 8064 KB
015.txt WA 172 ms 10112 KB
016.txt WA 172 ms 10112 KB
017.txt WA 173 ms 10112 KB
018.txt WA 173 ms 10112 KB
019.txt WA 174 ms 10112 KB
020.txt WA 175 ms 12160 KB
021.txt AC 19 ms 640 KB
022.txt WA 156 ms 3840 KB
023.txt AC 79 ms 3584 KB
024.txt AC 34 ms 1024 KB
025.txt WA 101 ms 3584 KB
026.txt AC 22 ms 768 KB
027.txt WA 126 ms 3840 KB
028.txt AC 67 ms 3456 KB
029.txt AC 63 ms 3456 KB
030.txt AC 65 ms 3456 KB
031.txt WA 129 ms 5760 KB
032.txt WA 83 ms 3584 KB
033.txt WA 83 ms 3584 KB
034.txt WA 137 ms 7936 KB
035.txt AC 28 ms 3328 KB
036.txt WA 153 ms 7936 KB
037.txt WA 126 ms 7808 KB
038.txt AC 35 ms 3328 KB
039.txt WA 92 ms 5632 KB
040.txt WA 83 ms 5632 KB
041.txt WA 153 ms 9984 KB
042.txt AC 138 ms 8064 KB
043.txt WA 139 ms 8064 KB
044.txt WA 170 ms 8064 KB
045.txt AC 1 ms 256 KB
046.txt AC 129 ms 1024 KB
047.txt WA 221 ms 73600 KB
048.txt WA 132 ms 1024 KB
049.txt WA 130 ms 1024 KB
050.txt WA 133 ms 1024 KB
051.txt WA 139 ms 1024 KB
052.txt WA 149 ms 1152 KB
053.txt WA 159 ms 1664 KB
054.txt WA 170 ms 8064 KB
055.txt WA 123 ms 1024 KB
056.txt WA 121 ms 1024 KB
057.txt WA 125 ms 1024 KB
058.txt WA 132 ms 1024 KB
059.txt WA 142 ms 1152 KB
060.txt WA 152 ms 1664 KB
061.txt WA 164 ms 8064 KB
062.txt AC 137 ms 8064 KB
063.txt WA 138 ms 8064 KB
example0.txt AC 1 ms 256 KB
example1.txt AC 1 ms 256 KB