Submission #3441894


Source Code Expand

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<functional>
#include<vector>
#include<queue>
#include<stack>
#include<set>
#include<map>
using namespace std;
#define MOD 1000000007
#define f(i,n) for(int i=0;i<int(n);i++)
#define N (1<<18)

int a[(2 * N)];

void init(void){
	f(i, 2 * N)a[i] = -MOD;
	return;
}


void change(int k, int x){
	k += N;
	if (a[k]<x)a[k] = x;
	else return;
	while (k > 1){
		k = k / 2;
		a[k] = max(a[2 * k], a[2 * k + 1]);
	}
	return;
}
//探索(0<=l<r<=n)範囲は(l<=x<r)初期は(l,r,1,0,N)
int max_search(int l, int r, int k, int sl, int sr){
	if (r <= sl || sr <= l)return -MOD;
	else if (l <= sl&&sr <= r) return a[k];
	else{
		int vl = max_search(l, r, 2 * k, sl, (sl + sr) / 2);
		int vr = max_search(l, r, 2 * k + 1, (sl + sr) / 2, sr);
		return max(vl, vr);
	}
}




int main(void){
	int b[N];
	int s[N];
	vector<pair<int, int> >qq;
	int nx = 0;
	int n;
	int m;
	int x, y, z;
	int xx;
	scanf("%d", &n);
	init();
	b[0] = 0;
	s[0] = b[0];
	f(i, n){
		scanf("%d", &x);
		if (x == 0){
			b[i + 1] = b[i] + 1;
			s[i + 1] = b[i + 1];
		}
		else{
			b[i + 1] = b[i];
			s[i + 1] = b[i + 1];
		}
	}
	scanf("%d", &m);
	f(i, m){
		scanf("%d %d", &x, &y);
		qq.push_back(make_pair(x, y));
	}
	sort(qq.begin(), qq.end());
	for (int i = 1; i <= n; i++){
		if (b[i - 1]<b[i]){
			s[i] = max(s[i - 1] + 1, s[i]);
		}
		else s[i] = max(s[i - 1], s[i]);
		if (nx < qq.size()){
			while (qq[nx].first <= i){
				xx = qq[nx].second;
				x = s[i - 1] + (xx - b[xx]) - (i - 1 - b[i - 1]);
				y = max_search(i, xx + 1, 1, 0, N);
				if (y > (-MOD)){
					y += (xx - b[xx]);
					z = max(x, y);
				}
				else z = x;
				s[xx] = max(s[xx], z);
				change(xx, z - (xx - b[xx]));
				nx++;
				if (nx >= qq.size())break;
			}
		}

	}
	printf("%d\n", n-s[n]);

	return 0;

}

Submission Info

Submission Time
Task F - NRE
User ptrs
Language C++14 (GCC 5.4.1)
Score 1000
Code Size 1946 Byte
Status AC
Exec Time 154 ms
Memory 6004 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:58:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
                 ^
./Main.cpp:63:18: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &x);
                  ^
./Main.cpp:73:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &m);
                 ^
./Main.cpp:75:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d", &x, &y);
                         ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1000 / 1000
Status
AC × 7
AC × 127
Set Name Test Cases
Sample example_0, example_1, example_2, example_3, example_4, example_5, example_6
All cent_0, cent_1, cent_2, cent_3, cent_4, cent_5, cent_6, cent_7, cent_8, cent_9, example_0, example_1, example_2, example_3, example_4, example_5, example_6, full_0, full_1, full_10, full_11, full_12, full_13, full_14, full_15, full_16, full_17, full_18, full_19, full_2, full_3, full_4, full_5, full_6, full_7, full_8, full_9, maxrand_0, maxrand_1, maxrand_10, maxrand_11, maxrand_12, maxrand_13, maxrand_14, maxrand_15, maxrand_16, maxrand_17, maxrand_18, maxrand_19, maxrand_2, maxrand_20, maxrand_21, maxrand_22, maxrand_23, maxrand_24, maxrand_25, maxrand_26, maxrand_27, maxrand_28, maxrand_29, maxrand_3, maxrand_4, maxrand_5, maxrand_6, maxrand_7, maxrand_8, maxrand_9, rand_0, rand_1, rand_10, rand_11, rand_12, rand_13, rand_14, rand_15, rand_16, rand_17, rand_18, rand_19, rand_2, rand_3, rand_4, rand_5, rand_6, rand_7, rand_8, rand_9, small_0, small_1, small_2, small_3, small_4, small_5, small_6, small_7, small_8, small_9, smallwidth_0, smallwidth_1, smallwidth_10, smallwidth_11, smallwidth_12, smallwidth_13, smallwidth_14, smallwidth_15, smallwidth_16, smallwidth_17, smallwidth_18, smallwidth_19, smallwidth_2, smallwidth_20, smallwidth_21, smallwidth_22, smallwidth_23, smallwidth_24, smallwidth_25, smallwidth_26, smallwidth_27, smallwidth_28, smallwidth_29, smallwidth_3, smallwidth_4, smallwidth_5, smallwidth_6, smallwidth_7, smallwidth_8, smallwidth_9
Case Name Status Exec Time Memory
cent_0 AC 144 ms 6004 KB
cent_1 AC 151 ms 6004 KB
cent_2 AC 139 ms 6004 KB
cent_3 AC 147 ms 6004 KB
cent_4 AC 148 ms 6004 KB
cent_5 AC 139 ms 6004 KB
cent_6 AC 146 ms 6004 KB
cent_7 AC 146 ms 6004 KB
cent_8 AC 151 ms 6004 KB
cent_9 AC 139 ms 6004 KB
example_0 AC 2 ms 2304 KB
example_1 AC 2 ms 2304 KB
example_2 AC 2 ms 2304 KB
example_3 AC 2 ms 2304 KB
example_4 AC 2 ms 2304 KB
example_5 AC 2 ms 2304 KB
example_6 AC 2 ms 2304 KB
full_0 AC 20 ms 3840 KB
full_1 AC 143 ms 6004 KB
full_10 AC 21 ms 3840 KB
full_11 AC 143 ms 6004 KB
full_12 AC 21 ms 3840 KB
full_13 AC 143 ms 6004 KB
full_14 AC 21 ms 3840 KB
full_15 AC 143 ms 6004 KB
full_16 AC 20 ms 3840 KB
full_17 AC 143 ms 6004 KB
full_18 AC 21 ms 3840 KB
full_19 AC 143 ms 6004 KB
full_2 AC 21 ms 3840 KB
full_3 AC 143 ms 6004 KB
full_4 AC 21 ms 3840 KB
full_5 AC 144 ms 6004 KB
full_6 AC 20 ms 3840 KB
full_7 AC 144 ms 6004 KB
full_8 AC 20 ms 3840 KB
full_9 AC 144 ms 6004 KB
maxrand_0 AC 21 ms 3840 KB
maxrand_1 AC 153 ms 6004 KB
maxrand_10 AC 21 ms 3840 KB
maxrand_11 AC 152 ms 6004 KB
maxrand_12 AC 21 ms 3840 KB
maxrand_13 AC 151 ms 6004 KB
maxrand_14 AC 21 ms 3840 KB
maxrand_15 AC 153 ms 6004 KB
maxrand_16 AC 21 ms 3840 KB
maxrand_17 AC 152 ms 6004 KB
maxrand_18 AC 21 ms 3840 KB
maxrand_19 AC 151 ms 6004 KB
maxrand_2 AC 20 ms 3840 KB
maxrand_20 AC 21 ms 3840 KB
maxrand_21 AC 154 ms 6004 KB
maxrand_22 AC 21 ms 3840 KB
maxrand_23 AC 152 ms 6004 KB
maxrand_24 AC 21 ms 3840 KB
maxrand_25 AC 151 ms 6004 KB
maxrand_26 AC 21 ms 3840 KB
maxrand_27 AC 151 ms 6004 KB
maxrand_28 AC 20 ms 3840 KB
maxrand_29 AC 151 ms 6004 KB
maxrand_3 AC 151 ms 6004 KB
maxrand_4 AC 20 ms 3840 KB
maxrand_5 AC 151 ms 6004 KB
maxrand_6 AC 21 ms 3840 KB
maxrand_7 AC 151 ms 6004 KB
maxrand_8 AC 20 ms 3840 KB
maxrand_9 AC 151 ms 6004 KB
rand_0 AC 151 ms 6004 KB
rand_1 AC 88 ms 4852 KB
rand_10 AC 152 ms 6004 KB
rand_11 AC 51 ms 3836 KB
rand_12 AC 151 ms 6004 KB
rand_13 AC 111 ms 5492 KB
rand_14 AC 151 ms 6004 KB
rand_15 AC 71 ms 3704 KB
rand_16 AC 151 ms 6004 KB
rand_17 AC 85 ms 4088 KB
rand_18 AC 151 ms 6004 KB
rand_19 AC 131 ms 5876 KB
rand_2 AC 151 ms 6004 KB
rand_3 AC 125 ms 4852 KB
rand_4 AC 151 ms 6004 KB
rand_5 AC 87 ms 4596 KB
rand_6 AC 151 ms 6004 KB
rand_7 AC 97 ms 5108 KB
rand_8 AC 152 ms 6004 KB
rand_9 AC 30 ms 3840 KB
small_0 AC 2 ms 2304 KB
small_1 AC 2 ms 2304 KB
small_2 AC 2 ms 2304 KB
small_3 AC 2 ms 2304 KB
small_4 AC 2 ms 2304 KB
small_5 AC 2 ms 2304 KB
small_6 AC 2 ms 2304 KB
small_7 AC 2 ms 2304 KB
small_8 AC 2 ms 2304 KB
small_9 AC 2 ms 2304 KB
smallwidth_0 AC 21 ms 3840 KB
smallwidth_1 AC 136 ms 6004 KB
smallwidth_10 AC 20 ms 3840 KB
smallwidth_11 AC 120 ms 6004 KB
smallwidth_12 AC 21 ms 3840 KB
smallwidth_13 AC 136 ms 6004 KB
smallwidth_14 AC 20 ms 3840 KB
smallwidth_15 AC 120 ms 6004 KB
smallwidth_16 AC 20 ms 3840 KB
smallwidth_17 AC 137 ms 6004 KB
smallwidth_18 AC 21 ms 3840 KB
smallwidth_19 AC 120 ms 6004 KB
smallwidth_2 AC 21 ms 3840 KB
smallwidth_20 AC 21 ms 3840 KB
smallwidth_21 AC 137 ms 6004 KB
smallwidth_22 AC 20 ms 3840 KB
smallwidth_23 AC 121 ms 6004 KB
smallwidth_24 AC 21 ms 3840 KB
smallwidth_25 AC 137 ms 6004 KB
smallwidth_26 AC 20 ms 3840 KB
smallwidth_27 AC 120 ms 6004 KB
smallwidth_28 AC 20 ms 3840 KB
smallwidth_29 AC 136 ms 6004 KB
smallwidth_3 AC 121 ms 6004 KB
smallwidth_4 AC 20 ms 3840 KB
smallwidth_5 AC 136 ms 6004 KB
smallwidth_6 AC 20 ms 3840 KB
smallwidth_7 AC 120 ms 6004 KB
smallwidth_8 AC 21 ms 3840 KB
smallwidth_9 AC 136 ms 6004 KB