Submission #6834

# Submission time Handle Problem Language Result Execution time Memory
6834 2014-07-08T03:32:28 Z gs12117 역사적 조사 (JOI14_historical) C++
40 / 100
4000 ms 7436 KB
#include<stdio.h>
#include<algorithm>
#define BSIZ 300
int n,q;
int x[100100];
struct sn{
	int loc,val;
	bool operator<(const sn&r)const{
		return val<r.val;
	}
};
sn st[100100];
int a[100100];
int cpr[100100];
int qry[100100][2];
long long int ans[100100];
long long int sv[100100];
int cprn;
long long int it[1<<18];
void push(int loc,long long int val){
	loc+=1<<17;
	it[loc]=val;
	loc/=2;
	while(loc!=0){
		if(it[loc*2]>it[loc*2+1]){
			it[loc]=it[loc*2];
		}
		else{
			it[loc]=it[loc*2+1];
		}
		loc/=2;
	}
}
long long int calc(){
	return it[1];
}
int main(){
	int i,j,k,p,bf;
	scanf("%d%d",&n,&q);
	for(i=0;i<n;i++){
		scanf("%d",&x[i]);
		st[i].val=x[i];
		st[i].loc=i;
	}
	std::sort(st,st+n);
	for(i=0;i<n;i++){
		a[st[i].loc]=cprn;
		if(i==n-1||st[i].val!=st[i+1].val){
			cpr[cprn]=st[i].val;
			cprn++;
		}
	}
	for(i=0;i<q;i++){
		scanf("%d%d",&qry[i][0],&qry[i][1]);
		qry[i][0]--;
		qry[i][1]--;
		st[i].loc=i;
		st[i].val=qry[i][1];
	}
	std::sort(st,st+q);
	for(i=0;i<=(n-1)/BSIZ;i++){
		bf=i*BSIZ;
		for(j=0;j<q;j++){
			p=st[j].loc;
			if(qry[p][0]/BSIZ==i){
				for(k=bf;k<=qry[p][1];k++){
					sv[a[k]]+=cpr[a[k]];
					push(a[k],sv[a[k]]);
				}
				bf=qry[p][1]+1;
				for(k=i*BSIZ;k<qry[p][0];k++){
					sv[a[k]]-=cpr[a[k]];
					push(a[k],sv[a[k]]);
				}
				ans[p]=calc();
				for(k=i*BSIZ;k<qry[p][0];k++){
					sv[a[k]]+=cpr[a[k]];
					push(a[k],sv[a[k]]);
				}
			}
		}
		for(k=i*BSIZ;k<bf;k++){
			sv[a[k]]-=cpr[a[k]];
			push(a[k],sv[a[k]]);
		}
	}
	for(i=0;i<q;i++){
		printf("%lld\n",ans[i]);
	}
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 7436 KB Output is correct
2 Correct 0 ms 7436 KB Output is correct
3 Correct 0 ms 7436 KB Output is correct
4 Correct 0 ms 7436 KB Output is correct
5 Correct 0 ms 7436 KB Output is correct
6 Correct 0 ms 7436 KB Output is correct
7 Correct 0 ms 7436 KB Output is correct
8 Correct 0 ms 7436 KB Output is correct
9 Correct 0 ms 7436 KB Output is correct
10 Correct 0 ms 7436 KB Output is correct
11 Correct 0 ms 7436 KB Output is correct
12 Correct 0 ms 7436 KB Output is correct
13 Correct 0 ms 7436 KB Output is correct
14 Correct 0 ms 7436 KB Output is correct
15 Correct 0 ms 7436 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 7436 KB Output is correct
2 Correct 4 ms 7436 KB Output is correct
3 Correct 16 ms 7436 KB Output is correct
4 Correct 36 ms 7436 KB Output is correct
5 Correct 76 ms 7436 KB Output is correct
6 Correct 116 ms 7436 KB Output is correct
7 Correct 120 ms 7436 KB Output is correct
8 Correct 104 ms 7436 KB Output is correct
9 Correct 108 ms 7436 KB Output is correct
10 Correct 152 ms 7436 KB Output is correct
11 Correct 144 ms 7436 KB Output is correct
12 Correct 148 ms 7436 KB Output is correct
13 Correct 148 ms 7436 KB Output is correct
14 Correct 140 ms 7436 KB Output is correct
15 Correct 144 ms 7436 KB Output is correct
16 Correct 104 ms 7436 KB Output is correct
17 Correct 104 ms 7436 KB Output is correct
18 Correct 144 ms 7436 KB Output is correct
19 Correct 144 ms 7436 KB Output is correct
20 Correct 144 ms 7436 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 7436 KB Output is correct
2 Correct 0 ms 7436 KB Output is correct
3 Correct 0 ms 7436 KB Output is correct
4 Correct 0 ms 7436 KB Output is correct
5 Correct 24 ms 7436 KB Output is correct
6 Correct 4 ms 7436 KB Output is correct
7 Correct 8 ms 7436 KB Output is correct
8 Correct 4 ms 7436 KB Output is correct
9 Correct 28 ms 7436 KB Output is correct
10 Correct 28 ms 7436 KB Output is correct
11 Correct 1768 ms 7436 KB Output is correct
12 Correct 120 ms 7436 KB Output is correct
13 Correct 684 ms 7436 KB Output is correct
14 Correct 1552 ms 7436 KB Output is correct
15 Correct 3040 ms 7436 KB Output is correct
16 Correct 3112 ms 7436 KB Output is correct
17 Correct 1560 ms 7436 KB Output is correct
18 Correct 2448 ms 7436 KB Output is correct
19 Correct 2632 ms 7436 KB Output is correct
20 Correct 1348 ms 7436 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 232 ms 7436 KB Output is correct
2 Correct 656 ms 7436 KB Output is correct
3 Correct 1336 ms 7436 KB Output is correct
4 Correct 2108 ms 7436 KB Output is correct
5 Correct 2912 ms 7436 KB Output is correct
6 Correct 3528 ms 7436 KB Output is correct
7 Correct 3316 ms 7436 KB Output is correct
8 Correct 3288 ms 7436 KB Output is correct
9 Correct 3608 ms 7436 KB Output is correct
10 Correct 3888 ms 7436 KB Output is correct
11 Execution timed out 4000 ms 7436 KB Program timed out
12 Halted 0 ms 0 KB -