QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#353842#7698. ISBN ConversionPetroTarnavskyi#AC ✓0ms3828kbC++201.5kb2024-03-14 17:38:362024-03-14 17:38:37

Judging History

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

  • [2024-03-14 17:38:37]
  • 评测
  • 测评结果:AC
  • 用时:0ms
  • 内存:3828kb
  • [2024-03-14 17:38:36]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

#define FOR(i, a, b) for(int i = (a); i < (b); i++)
#define RFOR(i, a, b) for(int i = (a) - 1; i >= (b); i--)
#define SZ(a) int(a.size())
#define ALL(a) a.begin(), a.end()
#define PB push_back
#define MP make_pair
#define F first
#define S second

typedef long long LL;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef double db;

bool ok(string s)
{
	int cnt = 0;
	if (s[0] == '-' || s.back() == '-')
		return false;
	FOR (i, 0, SZ(s))
	{
		if (s[i] == '-')
			cnt++;
		if (i && s[i] == s[i - 1] && s[i] == '-')
			return false;
		if (i < SZ(s) - 1 && s[i] == 'X')
			return false;
			
	}
	if (cnt > 3 || (cnt == 3 && s[SZ(s) - 2] != '-'))
		return false;
	return true;
}

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	
	int t;
	cin >> t;
	while (t--)
	{
		string s;
		cin >> s;
		if (!ok(s))
		{
			cout << "invalid\n";
			continue;
		}
		int sm = 0;
		int c = 10;
		FOR (i, 0, SZ(s))
		{
			if (s[i] == '-') continue;
			int d = s[i] - '0';
			if (s[i] == 'X')
				d = 10;
			sm += c * d;
			c--;
		}
		if (c != 0 || sm % 11 != 0)
		{
			cout << "invalid\n";
			continue;			
		}
		string ans = "978-";
		s.pop_back();
		ans += s;
		int sum = 0;
		int cnt = 0;
		FOR (i, 0, SZ(ans))
		{
			if (ans[i] == '-') continue;
			sum += (ans[i] - '0') * (cnt & 1 ? 3 : 1);
			cnt ^= 1;
		}		
		sum %= 10;
		int x = (10 - sum) % 10;
		ans += x + '0';
		cout << ans << '\n';
	}
	
	return 0;
}

详细

Test #1:

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

input:

4
3-540-4258-02
039428013X
3-540-42580-2
0-14-028333-3

output:

invalid
978-0394280134
978-3-540-42580-9
invalid

result:

ok 4 lines

Test #2:

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

input:

25
----------
-----------
------------
-------------
XXXXXXXXXX
XXXXXXXXXXX
XXXXXXXXXXXX
XXXXXXXXXXXXX
---------X
----------X
-----------X
01234567890
012345678901
0123456789012
-0123456789-
0123456789-
-0123456789
01--23456789
012345678--9
0123456789--
--0123456789
98765432-1
987-654-321
87-645-32-...

output:

invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid

result:

ok 25 lines

Test #3:

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

input:

5
71234567X1
71234567X-1
2-2345678-9
8X-7X-123456
7123X8123X

output:

invalid
invalid
invalid
invalid
invalid

result:

ok 5 lines

Test #4:

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

input:

10
3-540-42580-X
3-540-42580-3
0393609394
0-19-853453-9
0070131510
0070131512
0070131514
0070131516
0070131518
007013151X

output:

invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid

result:

ok 10 lines

Test #5:

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

input:

11
767-13423100
65955-01-15-1
778592-4222
3283-138-073
8-802896-37-4
514-2481525
356-52708-6-6
4-810-73599-7
3-28438-244-8
1-98-2031209
82-54-55344X

output:

invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid
invalid

result:

ok 11 lines

Test #6:

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

input:

12
0123456789
0-19-853453-1
0070131511
0-07-0131511
039428013-X
0-39-428013X
0-3942801-3X
0131103628
3-540-42580-2
3540425802
1535956828
1535-9-5682-8

output:

978-0123456786
978-0-19-853453-2
978-0070131514
978-0-07-0131514
978-039428013-4
978-0-39-4280134
978-0-3942801-34
978-0131103627
978-3-540-42580-9
978-3540425809
978-1535956826
978-1535-9-5682-6

result:

ok 12 lines

Test #7:

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

input:

10
69289-01810
07-8-2406750
4946302-980
91-45-00652-0
2526831830
8370591930
022-18967-4-0
86340-22-25-0
862-57-6642-0
1691783730

output:

978-69289-01810
978-07-8-2406757
978-4946302-985
978-91-45-00652-8
978-2526831832
978-8370591939
978-022-18967-4-3
978-86340-22-25-4
978-862-57-6642-6
978-1691783731

result:

ok 10 lines

Test #8:

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

input:

10
5-401032021
5240-54-427-1
9-180-978371
931-918-0741
4696037371
4087-1938-6-1
87-000442-6-1
6917-1319-11
1-765295351
5031540591

output:

978-5-401032027
978-5240-54-427-9
978-9-180-978378
978-931-918-0740
978-4696037373
978-4087-1938-6-2
978-87-000442-6-5
978-6917-1319-14
978-1-765295351
978-5031540596

result:

ok 10 lines

Test #9:

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

input:

10
3-457991-81-2
39984-91252
423300-4-932
3275898582
9366799-442
0557387302
45-91615812
251-19985-7-2
6055184192
81622230-0-2

output:

978-3-457991-81-7
978-39984-91258
978-423300-4-936
978-3275898589
978-9366799-445
978-0557387304
978-45-91615812
978-251-19985-7-1
978-6055184193
978-81622230-0-0

result:

ok 10 lines

Test #10:

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

input:

10
7876-3592-1-3
79129531-83
9-109-06704-3
82865161-33
2-9-35967283
49919695-73
7576775513
3-843660123
004739-25-33
509-758-044-3

output:

978-7876-3592-1-0
978-79129531-81
978-9-109-06704-6
978-82865161-32
978-2-9-35967283
978-49919695-77
978-7576775518
978-3-843660129
978-004739-25-35
978-509-758-044-4

result:

ok 10 lines

Test #11:

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

input:

10
27-6658-1154
457995-2774
0-878349-634
8230808074
663-1-368014
9439-7026-6-4
365-0-59504-4
0158386574
902-1-41617-4
8573813814

output:

978-27-6658-1153
978-457995-2779
978-0-878349-630
978-8230808078
978-663-1-368016
978-9439-7026-6-2
978-365-0-59504-1
978-0158386577
978-902-1-41617-5
978-8573813814

result:

ok 10 lines

Test #12:

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

input:

10
800-978040-5
4855-4-6463-5
61561839-65
9830-08479-5
2859817395
00324136-45
0985-8-6474-5
6624604875
0-83181632-5
32786193-15

output:

978-800-978040-6
978-4855-4-6463-7
978-61561839-65
978-9830-08479-4
978-2859817398
978-00324136-41
978-0985-8-6474-3
978-6624604879
978-0-83181632-2
978-32786193-10

result:

ok 10 lines

Test #13:

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

input:

10
248-746984-6
50-140-8997-6
96-8-622617-6
58-213-48056
03497-12-026
3712-885946
319-8564-506
2-3-62643476
756359-764-6
582-97771-2-6

output:

978-248-746984-6
978-50-140-8997-5
978-96-8-622617-1
978-58-213-48050
978-03497-12-024
978-3712-885943
978-319-8564-509
978-2-3-62643477
978-756359-764-2
978-582-97771-2-8

result:

ok 10 lines

Test #14:

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

input:

10
9703497217
3414631237
559383597-7
4545227287
72344-0-2667
741-7414567
91752-4984-7
0545975867
1-817640097
4073-3-5268-7

output:

978-9703497218
978-3414631237
978-559383597-0
978-4545227283
978-72344-0-2664
978-741-7414569
978-91752-4984-1
978-0545975865
978-1-817640092
978-4073-3-5268-6

result:

ok 10 lines

Test #15:

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

input:

10
30-6751714-8
720022041-8
8122-182-348
45-98765-20-8
387750-0048
51371-962-58
0-547777-418
2248735448
78-89-298978
6-16533168-8

output:

978-30-6751714-8
978-720022041-4
978-8122-182-347
978-45-98765-20-6
978-387750-0040
978-51371-962-53
978-0-547777-412
978-2248735449
978-78-89-298971
978-6-16533168-5

result:

ok 10 lines

Test #16:

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

input:

10
3863994019
1-883158419
40-88994949
56-6-201673-9
6-694343-779
52745031-79
0-243850-99-9
78-31645799
0677183259
2874-587109

output:

978-3863994013
978-1-883158415
978-40-88994949
978-56-6-201673-6
978-6-694343-777
978-52745031-74
978-0-243850-99-0
978-78-31645792
978-0677183251
978-2874-587108

result:

ok 10 lines

Test #17:

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

input:

10
407303295X
9-475-98657-X
827-522618-X
280455564X
1975-7120-3X
758-256152-X
090330614X
271696-6-63X
534942744X
53628-6680X

output:

978-4073032953
978-9-475-98657-6
978-827-522618-9
978-2804555641
978-1975-7120-37
978-758-256152-5
978-0903306140
978-271696-6-634
978-5349427442
978-53628-66808

result:

ok 10 lines