QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#714185#7109. Traveling on the AxisIUT_Bhalochelera#WA 8ms5092kbC++231.1kb2024-11-05 22:01:052024-11-05 22:01:14

Judging History

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

  • [2024-11-05 22:01:14]
  • 评测
  • 测评结果:WA
  • 用时:8ms
  • 内存:5092kb
  • [2024-11-05 22:01:05]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;\

#define all(V) V.begin (), V.end ()

using LL = long long;

void solve (int tc) {
	string s;
	cin >> s;
	LL n = s.size ();
	vector <LL> pref (n + 1), pref_of_pref (n + 1);
	LL move = 0;
	for (LL i = 0; i < n; i++) {
		if (i == 0) {
			if (s[i] == '0') move += 2;
			else move++;
		} else {
			if (s[i] == s[i - 1]) move += 2;
			else move ++;
		}
		pref[i + 1] = move;
	}
	for (LL i = 1; i <= n; i++) pref_of_pref[i] = pref_of_pref[i - 1] + pref[i];
	// for (LL i = 1; i <= n; i++) cerr << pref_of_pref[i] << " \n"[i == n];

	LL ans = 0, extra = 0, prev = 0;
	for (LL i = 1; i <= n; i++) {
		if (i == 1) ans += pref_of_pref[n];
		else {
			if (s[i - 1] == s[i - 2]) extra++;
			else extra = 0;
			ans += pref_of_pref[n] - pref_of_pref[i - 1] - (pref[i - 1] + extra) * (n - i + 1) + (n - i + 1) * (s[i - 1] == '0');
		}
	}
	cout << ans << '\n';
} 

int main () {
	cin.tie (nullptr) -> ios_base :: sync_with_stdio (false);

	int tests;
	cin >> tests;
	for (int tc = 1; tc <= tests; tc++) {
		solve (tc);
	}

	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3844kb

input:

3
101
011
11010

output:

12
15
43

result:

ok 3 lines

Test #2:

score: -100
Wrong Answer
time: 8ms
memory: 5092kb

input:

6107
1010101
010110100110101
1010
1010101010010101010
101011
0101101011010101010
0101101011
11011010101
010
1011010
10110101010101010100
010101010110101
10101010101011
0101010101010101011
00101010011000
1010101010010110110
01010101001010101010
101010101010101
100100101010101010
01
011
0101010100101
...

output:

96
889
24
1515
69
1567
279
345
14
106
1702
791
621
1447
763
1615
1755
736
1333
6
15
542
44
1689
1515
140
829
497
596
24
1640
694
462
30
425
14
1041
1446
96
504
123
75
560
970
771
945
6
1
321
132
786
715
206
769
46
103
225
74
554
2
100
529
260
207
197
2
197
1041
140
857
207
1
74
1604
41
343
1041
14
1...

result:

wrong answer 15th lines differ - expected: '764', found: '763'