QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#256701#3300. Cactus Competitionlnwbs200WA 1ms9840kbC++142.1kb2023-11-18 21:07:012023-11-18 21:07:02

Judging History

你现在查看的是最新测评结果

  • [2023-11-18 21:07:02]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:9840kb
  • [2023-11-18 21:07:01]
  • 提交

answer

#include <iostream>
#include <algorithm>
using namespace std;

const int N = 2e5 + 5, INF = 2e9 + 5;
typedef long long LL;
int n, m, cnt;
int a[N], b[N], d[N];
int maxl[N], minl[N], h[N], c[N], suf1[N], suf2[N], g[N];
LL ans;
bool vis[N];

int main()
{
    int n, m;
	cin >> n >> m;
	int D = -1e9, F = 1e9;
	for (int i = 1; i <= m; i++) cin >> b[i];
	for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
        a[i] = -a[i];
        D = max(D, a[i]), F = min(F, a[i]);
    }
	minl[0] = INF;
	maxl[1] = minl[1] = a[1];
	for (int i = 2; i <= n; i++)
    {
        maxl[i] = max(maxl[i - 1], a[i]);
        minl[i] = min(minl[i - 1], a[i]);
    }
	suf1[n] = suf2[n] = a[n];
	suf2[n + 1] = INF;
	for (int i = n - 1; i > 0; i--)
    {
        suf1[i] = max(suf1[i + 1], a[i]);
        suf2[i] = min(suf2[i + 1], a[i]); 
    }
	for (int i = 1; i <= m; i++)
    {
		if (b[i] >= D)
        {
            d[++cnt] = i;
            vis[i] = true;
            c[cnt]=1;
        }
		else
        {
			h[i] = upper_bound(maxl + 1, maxl + n + 1, b[i]) - maxl - 1;
			int l = 1, r = n, pos = n + 1;
			while (l <= r)
            {
				int mid = l+r >> 1;
				if (suf1[mid] <= b[i]) r = mid - 1, pos = mid;	
				else l = mid + 1;
			}
			g[i] = pos;
		}
	}
	int x = 0, y, z;
	for (int i = d[1]; i <= m; i++)
    {
		if (vis[i])
        {
			x++;
            y = d[i];
            z = INF;
			continue;
		}
		z = min(z, b[i]);
		if (z >= suf2[g[i]])
        {
			c[x]++;
			z = INF;
		}
	}
	bool ok = false;
	for (int i = cnt - 1; i > 0; i--)
    {
		ok = true;
		for(int j = d[i + 1] - 1; j > d[i];j--)
        {
			if (b[j] < F)
            {
                ok = false;
                break;
            }
        }
		if (ok) c[i] += c[i + 1];
	}
	x = cnt + 1;
	for(int i = d[cnt]; i > 0; i--)
    {
		if (vis[i])
        {
			x--;
            y = d[i];
            z = INF;
			ans += c[x];
			continue;
		}
		z = min(z, b[i]);
		if (z >= minl[h[i]])
        {
			ans += c[x];
			z = INF;
		}
	}
	cout << ans << endl;
	return 0; 
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 9836kb

input:

3 3
-1 0 1
-1 0 1

output:

1

result:

ok single line: '1'

Test #2:

score: 0
Accepted
time: 0ms
memory: 9780kb

input:

3 3
-1 0 1
1 0 1

output:

5

result:

ok single line: '5'

Test #3:

score: 0
Accepted
time: 1ms
memory: 9752kb

input:

10 10
145195799 312862766 143966779 -11056226 -503624929 636383890 -182650312 -382759112 -290767690 377894950
-845235881 -418232930 -600566938 -957917357 -181139226 125255273 -175406945 740226783 -750456842 325848662

output:

0

result:

ok single line: '0'

Test #4:

score: 0
Accepted
time: 1ms
memory: 9692kb

input:

10 10
923415743 -503391272 885740174 329644337 -693052351 -53764994 731859967 -834732760 -57751504 151969590
553689579 313784278 -12090771 921222379 -378313551 819586787 -373658045 559813071 671861309 268258615

output:

13

result:

ok single line: '13'

Test #5:

score: 0
Accepted
time: 1ms
memory: 9764kb

input:

10 10
-123276196 264891802 609485405 -980113903 152483893 57563748 -454135131 618686452 545983457 236619926
648896419 838269531 -380077537 536463844 89691984 38425645 759165084 325716532 330825142 -472414030

output:

12

result:

ok single line: '12'

Test #6:

score: 0
Accepted
time: 1ms
memory: 9696kb

input:

10 10
982508669 144806400 -503165973 760719995 -249757698 -573349946 -974145393 -905114292 218260516 -582308724
-341366248 187422683 298181900 -305351333 -616330465 -358958909 499163196 -967112195 -892547772 -605274022

output:

1

result:

ok single line: '1'

Test #7:

score: 0
Accepted
time: 1ms
memory: 9840kb

input:

10 10
-46634296 998649898 637256009 858343376 -339756903 750734027 533317110 509238419 -386390857 573123021
281094131 -798662878 454769235 -725579556 448648301 -937460999 -94310392 -504422439 -566805692 -883657655

output:

2

result:

ok single line: '2'

Test #8:

score: 0
Accepted
time: 1ms
memory: 9772kb

input:

10 10
-448680004 -918586552 -352190179 959516158 674275159 -778874335 -736749389 -368418013 103878020 562512923
-493932809 -736960513 78543198 885372691 -119140562 627952281 733778437 115556860 -196686999 -530143800

output:

3

result:

ok single line: '3'

Test #9:

score: 0
Accepted
time: 1ms
memory: 9840kb

input:

10 10
438736217 -79057408 749090846 -106479211 -864134653 49806870 -724192950 -354806728 -230893984 130090227
-313678558 -493317070 -704907097 -240066585 275905249 -440144088 -697190358 608351624 783121279 -54163556

output:

1

result:

ok single line: '1'

Test #10:

score: 0
Accepted
time: 1ms
memory: 9784kb

input:

10 10
910467973 475480237 284540173 -490003419 -496858639 575308046 -772115835 -650286781 -946294433 -375903216
465208966 198897340 37926241 -452764487 81169636 803610511 943188813 773420180 248487883 -932609634

output:

0

result:

ok single line: '0'

Test #11:

score: 0
Accepted
time: 0ms
memory: 9760kb

input:

10 10
-717662422 899539843 686516865 -308859590 731187727 948271874 -278705921 533338789 378708586 -53953529
-819295682 -712753496 -588162402 -765119207 518537239 793210677 199564253 443460314 248599384 333581283

output:

14

result:

ok single line: '14'

Test #12:

score: 0
Accepted
time: 0ms
memory: 9756kb

input:

10 10
13154473 419018121 -416088051 751464183 -782740304 257733919 -917880927 -690282918 410240353 817939924
440852087 -846511822 -519300757 153508300 757901474 928246448 -132837037 -603019187 860960474 -381787006

output:

0

result:

ok single line: '0'

Test #13:

score: 0
Accepted
time: 0ms
memory: 9764kb

input:

10 10
-357608489 679822152 25019791 265926477 -309098231 -7866110 -344995594 54868813 319830921 627547981
-431127028 -396320203 -35574917 657270168 -452580497 -359511978 -443174072 195670048 -696354158 2633147

output:

0

result:

ok single line: '0'

Test #14:

score: 0
Accepted
time: 0ms
memory: 9696kb

input:

10 10
126298083 -169291689 736314121 784469908 642788743 -450191333 -98804016 -511077469 -691147937 -275067405
440527703 -329746015 -473928781 -114255013 -450714278 -903623369 888225605 -146644734 173060316 214649350

output:

0

result:

ok single line: '0'

Test #15:

score: 0
Accepted
time: 0ms
memory: 9688kb

input:

10 10
-631748556 73286407 324751086 157696597 846447361 -444570059 484021795 -258058046 -116283058 -158063251
712663587 -233692952 820220037 516771553 879333593 156354440 -36643636 -639052753 -790959020 950256682

output:

30

result:

ok single line: '30'

Test #16:

score: -100
Wrong Answer
time: 1ms
memory: 7756kb

input:

20 10
-623445264 -424346675 38726811 -683309080 312098721 491569101 58067873 265188450 933087599 -786006093 -652539909 -790632832 780472328 -854541037 -851647529 130095820 35107516 -49396621 -476857996 -420750398
102904427 387758770 -297785914 -909492241 54351476 480814965 -450898650 532245762 14578...

output:

1

result:

wrong answer 1st lines differ - expected: '5', found: '1'