0% found this document useful (0 votes)
40 views4 pages

Bitstrings en

The document outlines a problem involving duplicated binary strings, defining them as non-empty strings that can be expressed as T = UU, where U is any binary string. It consists of two parts: Part I requires calculating the strength of a given binary string by counting distinct contiguous duplicated substrings, while Part II involves constructing binary strings of length 100 to minimize or maximize this strength. Implementation details and scoring criteria for each subtask are also provided.

Uploaded by

ugomsinachi003
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views4 pages

Bitstrings en

The document outlines a problem involving duplicated binary strings, defining them as non-empty strings that can be expressed as T = UU, where U is any binary string. It consists of two parts: Part I requires calculating the strength of a given binary string by counting distinct contiguous duplicated substrings, while Part II involves constructing binary strings of length 100 to minimize or maximize this strength. Implementation details and scoring criteria for each subtask are also provided.

Uploaded by

ugomsinachi003
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

bitstrings

IOI 2025 Practice Tasks


English (Official)

Duplicated Binary Strings


Carlos spends his summer holiday studying duplicated binary strings. A duplicated binary string is a
non-empty string T such that:

T contains only the characters 0 and 1 (that is, T is a binary string).



T can be written in the form T = ​U U , where U is an arbitrary binary string and the operation
ab denotes the concatenation of the strings a and b (i.e., writing them one after the other as a
single string).

For example, 0000 and 011011 are duplicated binary strings, but 01, 0110, and 000 are not.

Define the strength of a binary string S as the number of distinct contiguous duplicated substrings
present in S . Two substrings are considered different if they differ in at least one character.

This problem consists of two parts, with each subtask associated with either Part I or Part II. You may
solve the subtasks in any order; in particular, you are not required to complete all of Part I before
attempting Part II.

Part I
Carlos sends you a binary string S , and your task is to calculate its strength.

Implementation Details

You should implement the following procedure.

int count_duplicated(std::string S)

S : binary string of length N


This procedure is called exactly once for each test case.

The procedure should return an integer K , the number of distinct contiguous duplicated substrings
present in S .

Constraints

4 ≤ N ≤ 100
S[i] is either 0 or 1 for each i such that 0 ≤ i < N .

bitstrings (1 of 4)
Subtasks

Subtask Score Additional Constraints

1 6 N =4
2 9 No additional constraints.

Examples

Example 1

Consider the following call.

count_duplicated("0101")

There is only one duplicated binary substring in S , which is 0101. Therefore the procedure should
return 1 .

Example 2

Consider the following call.

count_duplicated("0000")

There are two duplicated binary substrings in S : 00 and 0000. Hence, the procedure should return 2 .

Note that although the substring 00 appears three times in S , it is counted only once in the final
answer.

Part II
Carlos wonders what the minimum and maximum strength of a binary string S can be.

Your task is to construct binary strings of length 100 that contain as few or as many duplicated
substrings as possible. You will receive a score based on the number of duplicated substrings.

Subtasks

This part consists of 2 output-only subtasks with partial scoring.

Subtask Score Constraint

3 25 Minimize the strength of S .

4 60 Maximize the strength of S .

bitstrings (2 of 4)
Implementation Details

For each subtask, you should either

submit an output file consisting of a binary string of length 100 , or


return a binary string in your program to a grader procedure call.

Each output file must be in the following format:

To construct the required binary strings in your solution program, you should implement the following
procedures.

std::string find_weakest()

If an output file for Subtask 3 is provided in your submission, this procedure will not be called.
Otherwise, the procedure is called in Subtask 3 exactly once.

The procedure should return a binary string S of length N = 100 with minimum strength.

std::string find_strongest()

If an output file for Subtask 4 is provided in your submission, this procedure will not be called.
Otherwise, the procedure is called in Subtask 4 exactly once.

The procedure should return a binary string S of length N = 100 with maximum strength.

Scoring

If your output does not conform to the constraints described in the implementation details, the score of
your solution for that subtask will be 0 (reported as Output isn't correct in CMS).

Let K denote the strength of the string in your output for a given subtask.

In Subtask 3 , your score is calculated according to the following table:

Condition Points

20 < K 0
4 < K ≤ 20 21 − K
K=4 20
K=3 25

bitstrings (3 of 4)
In Subtask 4 , your score is calculated according to the following table:

Condition Points

K ≤ 50 0
50 < K ≤ 80 K − 50
80 < K ≤ 83 30 + 5 ⋅ (K − 80)
K = 84 60

Sample Grader
Parts I and II use the same sample grader program, with the distinction between the two parts
determined by the first line of the input.

Input format for Part I:

1
S

Output format for Part I:

Input format for Part II:

2
T

Here, T is either the string weakest or the string strongest.

Output format for Part II:

Note that the output of the sample grader adheres to the required format for the output files in Part II.

bitstrings (4 of 4)

You might also like