CSES - Putka Open 2015 – finaali - Results
Submission details
Task:Omenat
Sender:
Submission time:2015-12-20 14:27:53 +0200
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttimescore
#10.15 s0details
#20.14 s0details
#30.15 s0details
#40.15 s0details
#50.14 s0details
#60.14 s0details
#70.14 s0details
#80.14 s0details
#90.16 s0details
#100.13 s0details

Code

#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#define ll long long
#define N (2<<16)

using namespace std;

long v[2*N];
long m[2*N];

void c (int k, long a) {
	k += N;
	v[k] = a;
	//cout<<"foo: "<<k<<endl;
	m[k] = a;
	for (k /= 2; k > 0; k /= 2) {
		v[k] = v[2*k] + v[2*k+1];
		m[k] = min(m[2*k], v[2*k+1]);
	}
}

void qu (long a, long b) {
	a += N;
	b += N;
	long w = (b - a + 1);
	long s = 0;
	long mn = 100000;
	while (a <= b) {
		if (a % 2 == 1) {
			mn = min(mn, m[a]);
			s += v[a++];
		}
		if (b % 2 == 0) {
			mn = min(mn, m[b]);
			s += v[b--];
		}
		a /= 2;
		b /= 2;
	}

	s -= (mn - 1) * w;
	//cout<<s<<" "<<(w * (w + 1) / 2)<<endl;
	if (s == (w * (w + 1) / 2)) cout<<"10-4"<<endl;
	else cout<<"QAQ"<<endl;
}

int main () {
	int n, q;
	cin>>n>>q;
	for (int i = 0; i < n; i++) {
		int k;
		cin>>k;
		c(i + 1, k);
	}
	for (int i = 0; i < q; i++) {
		char x;
		cin>>x;
		int a, b;
		cin>>a>>b;
		//a--; b--;
		if (x == '!') {
			long l = v[a + N];
			//cout<<l<<" "<<(a + N)<<":"<<v[b + N]<<" "<<(b + N)<<endl;
			c(a, v[b + N]);
			c(b, l);
		} else {
			qu(a, b);
		}
	}
}

Test details

Test 1

Verdict:

input
95
779724552 231968220 985023789 ...

correct output
(empty)

user output
(empty)

Test 2

Verdict:

input
85
229722261 51722691 862338862 8...

correct output
(empty)

user output
(empty)

Test 3

Verdict:

input
97
398995377 989444445 634573915 ...

correct output
(empty)

user output
(empty)

Test 4

Verdict:

input
99
843687873 164010938 51269970 4...

correct output
(empty)

user output
(empty)

Test 5

Verdict:

input
90
864611617 418460939 773297829 ...

correct output
(empty)

user output
(empty)

Test 6

Verdict:

input
92
289890246 25801423 763027596 7...

correct output
(empty)

user output
(empty)

Test 7

Verdict:

input
89
879039800 50522278 850785072 4...

correct output
(empty)

user output
(empty)

Test 8

Verdict:

input
96
27192469 222283781 681532515 1...

correct output
(empty)

user output
(empty)

Test 9

Verdict:

input
100
186459081 254674429 394007236 ...

correct output
(empty)

user output
(empty)

Test 10

Verdict:

input
98
612168861 979831717 671087051 ...

correct output
(empty)

user output
(empty)