### atcoder_official's blog

By atcoder_official, history, 11 months ago,

We will hold AtCoder Beginner Contest 319.

The point values will be 100-200-300-400-450-550-575.

Until ABC 318, we used 8 problems per contest because there were many difficult tasks we wanted to use in ABCs. Since we have used most of them, from this ABC, we will use 7 problems per contest.

The difficulty of problems A-F will not be changed. The range of difficulty of new problem Gs will be wider, some of them can be as easy as current problem Gs, while others can be as hard as current problem Exs. Please check the point values of each contest for more accurate estimation of difficulties.

We are looking forward to your participation!

• +81

 » 11 months ago, # |   +93 Number of Tasks: 8from this ABC, we will use 7 problems per contest.
•  » » 11 months ago, # ^ | ← Rev. 3 →   +11 Number of Tasks: 8The point values will be 100-200-300-400-450-550-575.
 » 11 months ago, # |   0 Something is wrong!8 problems, but 100-200-300-400-450-550-575.Emm...Are you sure if it is a mistake?
 » 11 months ago, # |   -8 It says there will be 7 problem in ABC, but in this blog, it says Number of Tasks: 8.So WHY?
•  » » 11 months ago, # ^ |   -9 Until ABC 318, we used 8 problems per contest because there were many difficult tasks we wanted to use in ABCs. Since we have used most of them, from this ABC, we will use 7 problems per contest.It means ABC319 will be 7 problem.
•  » » » 11 months ago, # ^ |   -8 thx.
 » 11 months ago, # |   -8 Number of Tasks:8So where is the 8th problem???
 » 11 months ago, # |   -8 This game only has 7 tasks, I don't know if this means the overall difficulty has increased
•  » » 11 months ago, # ^ |   -8 Look at the score should not?
•  » » 11 months ago, # ^ |   0 The post said:The difficulty of problems A-F will not be changed. The range of difficulty of new problem Gs will be wider, some of them can be as easy as current problem Gs, while others can be as hard as current problem Exs.
•  » » » 11 months ago, # ^ |   -8 Thanks for your answer.
 » 11 months ago, # |   0 I think I will do three questions.
 » 11 months ago, # |   0 I hope it can be simpler this time.
 » 11 months ago, # |   0 it's better than a well-known problem in ex.
 » 11 months ago, # |   0 But only I can't connect to AtCoder?
 » 11 months ago, # |   +41 What the hell is problem statement of C?
•  » » 11 months ago, # ^ |   0 Same problem, if the cells are given completely random then, total possibilities will be 9! and disappointments would be a small fraction. If someone understood or solved it correctly, please write in this thread.
 » 11 months ago, # |   0 B is so hard.
•  » » 11 months ago, # ^ |   -14 just enumerate
 » 11 months ago, # |   +13 The atcoder crashed...
•  » » 11 months ago, # ^ |   0 My Atcoder is fine.
 » 11 months ago, # |   0 dude can you explain qC
•  » » 11 months ago, # ^ |   0 I don't know what does C mean too.
•  » » » 11 months ago, # ^ |   0 I don't know what does C mean too.
 » 11 months ago, # |   -8 I don't have any ideas about C-False Hope.
•  » » 11 months ago, # ^ |   -8 This question is very vague.
•  » » » 11 months ago, # ^ |   -8 agree.I can't get the writter's idea
•  » » 11 months ago, # ^ |   0 You can consider all permutations of the order Takahashi sees the grids, check if it satisfies the condition easily. I agree the statement is not so clear, and that reading is the hardest part in solving the problem xd.
•  » » 11 months ago, # ^ |   0 How we're calculating the probability tough!
•  » » » 11 months ago, # ^ |   0 wdym? isn't the probability equal to "total number of permutations that satisfy condition"/(1*2...*9) ?
•  » » » » 11 months ago, # ^ |   0 oh...alrgt will try it out
 » 11 months ago, # |   +5 The difficulty of problems A-F will not be changed But I think it's harder than usual
 » 11 months ago, # |   0 C has the worst problem statement I've ever seen.
 » 11 months ago, # | ← Rev. 2 →   -33 .
•  » » 11 months ago, # ^ |   -11 Agree.The description of the title of this question is terrible.I don't know the origin of 2/3 at all!
 » 11 months ago, # |   +3 Literal False hope
»
11 months ago, # |
+17

### After reading C:

 » 11 months ago, # |   +1 The Problem statement and explanation for C is too bad
 » 11 months ago, # |   +6 Task C was really a disaster.Never seen such a bad description of a problem ,Even the Explanation of test cases are not clear.
•  » » 11 months ago, # ^ |   -14 I think the explanation is quite clear but the problem is too hard for C.
 » 11 months ago, # |   -8 Am I the only one who thought E >>> (F and G)
•  » » 11 months ago, # ^ |   0 how F please
•  » » » 11 months ago, # ^ | ← Rev. 2 →   0 you can do bitmask dp (bitmask denotes consumed medicines), notice that it's always optimal to defeat any enemy as soon as you can defeat it
•  » » » » 11 months ago, # ^ |   +1 Thank you very much! I didn't see the medicine constraint during the contest :(
•  » » 11 months ago, # ^ |   +5 Probably because $G$ is a kinda-standard problem?But I think E is easier than F. $1\leq P_i\leq 8$ gives it away.
•  » » » 11 months ago, # ^ |   0 How did you do E?
•  » » » » 11 months ago, # ^ | ← Rev. 3 →   +1 Consider lcm(1 ... 8) = 840, so all the starting time that have the same value after mod 840 has the same min time to transport from station 1 to n. Just preprocess the min time of station transportation starting at time x(mod 840) and answer the questions after this.
•  » » » » » 11 months ago, # ^ |   0 Could you provide with a proof for this?
•  » » » » » » 11 months ago, # ^ | ← Rev. 2 →   0 sort of obvious rly... I am really sorry, but I dont know how to put the explanation into mathematical terms :( but maybe you can figure out by examining all the time mod p[i] after visiting station i and you will see.
•  » » » » » » 11 months ago, # ^ | ← Rev. 2 →   0 Let's say you have $2$ buses having $p$ $=$ $[5, 6]$ and $t$ $=$ $[3, 4]$If you reach the first bus stand at $0$, you can take the first bus at $0$, reach the bus stop after $3$ units of time, start bus two at $6$, and reach the final bus stop at $10$.You can find the same for different values when you reach the first bus stop. It will be different for starting times (in this case) $6, 11, 16, ...$Now try to find the bus travel time if you reach the first bus stop at time equal to $lcm(5, 6) = 30$. You'll realize that the position of buses is exactly the same as it was at the time $= 0$. So the value is same and this pattern will continue.
•  » » » » 11 months ago, # ^ |   0 Hint 1$L = lcm(P_1, P_2, ..., P_N)$The same configuration of bus availability repeats after every $L$ units of time. Hint 2Since $1\leq P_i\leq 8$, the value of $L$ is very small. You can simulate the whole process for time units $0$ to $L-1$.
 » 11 months ago, # |   +5 Can anybody explain C ?
•  » » 11 months ago, # ^ |   +3 just find all valid orders by brute forcing over all permutations of length 9
•  » » » 11 months ago, # ^ |   0 Doing just as you suggested but getting WA on sample testcase #2. Any idea what is wrong with my code? #include using namespace std; using i64 = long long int; void testcase() { vector> a(3, vector(3)); for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) cin >> a[i][j]; vector p(9); iota(p.begin(), p.end(), 0); int total = 0, favourable = 0; do { bool ok = 0; vector> rows(3); vector> columns(3); vector> diagonals(2); for (int i = 0; i < 9; i++) { int x = p[i] / 3, y = p[i] % 3; rows[x].emplace_back(a[x][y]); } for (int i = 0; i < 9; i++) { int x = p[i] / 3, y = p[i] % 3; columns[y].emplace_back(a[x][y]); } for (int i = 0; i < 9; i++) { int x = p[i] / 3, y = p[i] % 3; if ((x == 0 && y == 0) || (x == 1 && y == 1) || (x == 2 && y == 2)) diagonals[0].emplace_back(a[x][y]); else if ((x == 0 && y == 2) || (x == 1 && y == 1) || (x == 2 && y == 0)) diagonals[1].emplace_back(a[x][y]); } for (int i = 0; i < 3; i++) if (rows[i][0] == rows[i][1] && rows[i][1] != rows[i][2]) ok = 1; for (int i = 0; i < 3; i++) if (columns[i][0] == columns[i][1] && columns[i][1] != columns[i][2]) ok = 1; for (int i = 0; i < 2; i++) if (diagonals[i][0] == diagonals[i][1] && diagonals[i][1] != diagonals[i][2]) ok = 1; total++; favourable += 1 - ok; } while (next_permutation(p.begin(), p.end())); double ans = 1.0 * favourable / total; cout << setprecision(10) << ans << "\n"; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); #ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif int T = 1; // cin >> T; for (int t = 1; t <= T; t++) { testcase(); } return 0; }
•  » » » » 11 months ago, # ^ |   0 Found the bug!!Just leaving the comment though in case anyone stumbled upon.Correct Code
 » 11 months ago, # |   0 how to solve D?
•  » » 11 months ago, # ^ |   0 Binary Search
•  » » » 11 months ago, # ^ |   +3 In D, what if the order of the words didn't matter, so would that problem be solved by dp ? How would we implement the solution in that case ?
•  » » 11 months ago, # ^ |   0 D can be solved using binary search, choose l as 0 and r as 1e9.Then apply binary search, with capacity as (l+r)/2, for the given capacity check if we can fill all words in m or less lines. finally print value of left.Basically capacity represents the best values for columns against m rows.
• »
»
»
11 months ago, # ^ |
Rev. 3   0

# include

using namespace std;

bool checkIfPossible(vector&a , long long mid , int m){

int n = a.size();
long long int sum = 0;
int c = 1;

for(int i = 0;i<n;i++){
sum = sum + a[i] + 1;
if(sum-1 > mid){
c += 1;
sum = a[i]+1;
}
}
return c <= m;

}

void solve(){ long long n , k; cin>>n>>k; vectora(n); for(int i = 0;i<n;i++){ cin>>a[i]; }

long long low = 0;
long long  high =  1000303000000000 ;

while(low<=high)
{

long long  mid = (low + high)/2;
if(checkIfPossible(a , mid , k)){
high = mid-1;
}
else{
low = mid+1;
}
}
cout<<low<<"\n";

}

int main() { #ifndef ONLINE_JUDGE freopen("./../input.txt","r",stdin); //file input.txt is opened in reading mode i.e "r" freopen("./../output.txt","w",stdout); //file output.txt is opened in writing mode i.e "w" #endif int t; // cin>>t; t = 1; while(t--){ solve(); } }

For Question D . What is wrong with my solution ? What am i doing wrong ?

•  » » » » 11 months ago, # ^ |   0 what if single element value is greater than mid?
•  » » » » » 11 months ago, # ^ |   0 Thank you .Yes , that was the mistake
•  » » » » » » 11 months ago, # ^ |   0 Hey can you repaste the correct code here please,considering the case: if (word_width > capacity) { return false; // Single word cannot fit within capacity }
• »
»
»
»
»
»
»
11 months ago, # ^ |
0

# include

using namespace std;

bool checkIfPossible(vector&a , long long mid , int m){

int n = a.size();
long long int sum = 0;
int c = 1;

for(int i = 0;i<n;i++){
if(a[i]>mid){
return false;
}
sum = sum + a[i] + 1;
if(sum-1 > mid){
c += 1;
sum = a[i]+1;
}
}
return c <= m;

}

void solve(){ long long n , k; cin>>n>>k; vectora(n); for(int i = 0;i<n;i++){ cin>>a[i]; }

long long low = 0;
long long  high =  10003030000000000 ;

while(low<=high)
{

long long  mid = (low + high)/2;
if(checkIfPossible(a , mid , k)){
high = mid-1;
}
else{
low = mid+1;
}
}
cout<<low<<"\n";

}

int main() { #ifndef ONLINE_JUDGE freopen("./../input.txt","r",stdin); //file input.txt is opened in reading mode i.e "r" freopen("./../output.txt","w",stdout); //file output.txt is opened in writing mode i.e "w" #endif int t; // cin>>t; t = 1; while(t--){ solve(); } }

•  » » » » » » » » 11 months ago, # ^ |   0 Thank You.
•  » » 11 months ago, # ^ |   0 Consider using a dichotomous answer for this question.Regarding the proof of monotonicity for this question: since the wider the width of the display, the more width can be displayed in a line, the fewer lines are needed for the display (the total number of words remains the same). So the width of the monitor and the number of lines needed to display it** have a monotonically decreasing relationship**, so you can use dichotomization.Dichotomize enumerates the width of the display $w$, and then calculates the minimum number of lines needed to display a word with a width of $w$, if the number of lines needed is less than or equal to $m$, then it meets the requirement, otherwise it doesn't meet the requirement.How is this calculated?If the width of the display $w$ is less than the maximum width of the word $mw$, it means that a word can not be put into the display, obviously does not meet the requirements.So that $sum$ that the current line has been used for how much width, $cnt$ that the current use of how many lines, an enumeration of the length of the word $l_i$, if the current width plus a space and $l_i$ the length of more than $w$ that the current line can not be put in the word, the need to open a new line, so that $cnt$ plus $1$, and so that $sum$ equal to $l_i$, otherwise $sum$ plus $l_i$ and $l_i$ and $l_i$, otherwise $sum$ plus $l_i$ and the length of a space.Time complexity: $O(\log n)$ for bisection, $O(n)$ for one calculation, $O(n \log n)$ for overall time complexity.
 » 11 months ago, # |   +5 First five problems without C, how awkward, and bad problem.
 » 11 months ago, # |   +10 Laugh at A, get confused about B, and then give up understanding at C.
 » 11 months ago, # |   0 I request Atcoder to take some action against a mass group whose user name starts with "klu". These all students belong from a certain university and have clearly mass copied, this drastically pushed the ranks.
•  » » 11 months ago, # ^ |   +3 Even with mass cheating, these losers could solve only the easiest three.
•  » » » 11 months ago, # ^ |   0 Even i was able to solve only the easiest 3, it took me ages to realise solving c wasnt worth it, but i clearly dont deserve a rank of 6000 when it should be in range of 3000-4000
•  » » » » 11 months ago, # ^ |   0 totally agree.
•  » » 11 months ago, # ^ |   +16 wtf why do those Indian cheaters start invading AtCoder too?
 » 11 months ago, # |   0 Can someone explain the statement of C?
 » 11 months ago, # |   +1 In problem C,Takahashi can see numbers in each cell in 9! different ways and we have to calculate valid permutations.A valid permutation is one in which for each row,column and diagonal which consists of two same values and one different value,he must visit the cell with different value before atleast one of the other two cells with same value. After that , the implementation is pretty much brute force.But the definition of valid permutation (not disappointed) was not clear at all atleast for me personally, it took me 40 min to understand what question is asking us to do and 7 odd minutes to implement it.
•  » » 11 months ago, # ^ |   0 Same with me.The problem statement should be more clear.
•  » » 11 months ago, # ^ |   0 I considered the 9! factorials ways of choosing the grid cells. For every such order, I made a 3X3 grid from them, and then checked whether the permutation was valid by considering the 16 possible unique lines. But I'm getting a much lower answer for sample 1. Can you please take a look at what I'm doing wrong? submission
•  » » » 11 months ago, # ^ |   0 What do you mean you checked "whether the permutation was valid" ? Aren't all permutations valid ? They are just a way of picking up the picking up the elements from the grid. I think the real question is whether a permutation is "disappointing" for Takahashi.
•  » » » » 11 months ago, # ^ |   0 Yeah, that's what I meant really, it's not valid, it's disappointing.
 » 11 months ago, # |   0 Yeah, C was a total buzz kill today. I wonder how much clearer was the Japanese description (for the Japanese speakers)...
 » 11 months ago, # |   0 G is even easier than F
 » 11 months ago, # |   0 can someone explain the solution for problem E?
 » 11 months ago, # |   +2 I think this can be called a ABC319C disaster.
•  » » 11 months ago, # ^ |   0 Can't agree more. Many of my classmates give up solving D,E when seeing C.
•  » » » 11 months ago, # ^ |   0 same i do :(
 » 11 months ago, # |   +15 What is C? Why is C?
 » 11 months ago, # |   0 atcoder_official Editorials when?
 » 11 months ago, # |   +1 Why there's no English Editorial?
 » 11 months ago, # |   0 can someone explain the sol of G? i'm thinking about bfs but i can't seem to optimized it.
 » 11 months ago, # |   0 When will the English Editorial be released
 » 11 months ago, # | ← Rev. 2 →   -8 How to solve G? I used simple BFS with o(n^2*log(n)) solution using sets and got TLE.
•  » » 11 months ago, # ^ |   -8 Oh typical Turkish guys, $n \leq 2*10^5$.
•  » » » 11 months ago, # ^ |   -8 I'm not turkish.
•  » » » » 11 months ago, # ^ |   -8 Azerbaijanis are Turks.
•  » » » » » 11 months ago, # ^ |   0 They're Azerbaijani Turks.
 » 11 months ago, # |   0 Is there any problem related to G? Very thanks!
•  » » 11 months ago, # ^ |   +6
•  » » » 11 months ago, # ^ |   0 Thanks a lot. I was able to solve the problem after reading the blog. Upvoted!
 » 11 months ago, # |   0 Can someone help me understand why my code for problem D doesn't pass all the tests? https://atcoder.jp/contests/abc319/submissions/45406059
•  » » 11 months ago, # ^ |   0 I modified your code a bit. The submission is here: https://atcoder.jp/contests/abc319/submissions/45437738
•  » » » 11 months ago, # ^ |   0 Thanks! Can you help me understand why the modified code works and the original not? As far as I understand you increase the lower bound so there will be less checks during the binary search so it could improve the running time but it shouldn't effect the correctness of the program but for some reason it does.
 » 11 months ago, # |   0 C is the most shit problem
 » 11 months ago, # |   0 I have a strange solution for F:Enumerate over all possible visiting orders of vertices with $t_i=2$. For each permutation, consider the following greedy strategy: Find a monster you can reach with the minimum strength. If you can't defeat it, take the reachable medicine with the highest priority (determined by the visiting order). Repeat this step, until all monsters are cleared or there is no medicine available.The overall time complexity is $\mathcal O(m!\times n\log n)$, where $m$ is the number of medicine vertices. So it can't fit in the time limit, but actually with some simple optimizations it ran in $800\mathrm{ms}$ (maybe can be hacked?).However, I got WAx1 (submission). Did I make a mistake in the program or the idea is wrong?
•  » » 11 months ago, # ^ | ← Rev. 3 →   0 I used the same solution as yours.I found I got 3 TLE.So I break when it will up to 2 seconds with No.Then I got 2 WA.So I change to output Yes or No randomly with the one-third probability outputs No,otherwise outputs Yes.Then I pass the task with judging 9 times in all.submission(After 7 times,Oh god,I found I had forgot to add srand(time(0)); at first!)
•  » » 11 months ago, # ^ |   0 Oh,I found another one.Using random_shuffle instead of next_permutation can get a higher probability to pass this task.I tried 3 times,and they all passed.
•  » » » 11 months ago, # ^ |   0 Thanks. But my code tried all the permutations, without any randomization. I expected TLE, but why does it get WA? Could you please have a look at my code?
•  » » » » 11 months ago, # ^ |   0 OK,let me have a look.
•  » » » 11 months ago, # ^ |   0 Some optimizations: use __gnu_pbds::priority_queue instead of std::priority_queue for a better constant factor if $(\text{the current strength})\times (\text{the product of all the available }g_i)\ge (\text{maximum monster strength})$, then print Yes.
•  » » » » 11 months ago, # ^ |   0 I'am in China now,I can't download the testcase.But you can try it.And I found another thing:I'am wrong,I can reach the subtree of a medicine without taking it.But I passed!
•  » » » » » 11 months ago, # ^ |   0 Maybe the test cases are too weak? And the test cases for ABC319 are't published yet (in fact, the latest public test cases from AtCoder is that of ABC311).
•  » » » » » » 11 months ago, # ^ |   0 Oh,that's too bad.
•  » » 11 months ago, # ^ | ← Rev. 2 →   0 I got the same WA x 1 (my submission) for problem F and I would be happy to know what's wrong with my solution. Are there any special cases or I misunderstood the statement of problem F?
•  » » » 11 months ago, # ^ |   0 That's strange.My best friend WA on there too.Why doesn't Atcoder publish the testcases?
 » 11 months ago, # |   0 Can anyone give proof for E, how time taken for t1 and t2 will be same if t1%840==t2%840
•  » » 11 months ago, # ^ |   0 $lcm(1,2,3,4,5,6,7,8) = 840$So the state of the bus stops repeats after every $840$ unit of time.
•  » » » 11 months ago, # ^ |   0 Can u please explain the approach..i am not able to understand why the state would repeat and why taking lcm is of any helpThank you!
 » 11 months ago, # | ← Rev. 2 →   +16 In the F，the data may be weak51 1 1 12 2 0 53 1 1 14 1 15 1 My AC code can be hacked
•  » » 11 months ago, # ^ |   +8 And the reason is that I don't consider the limit of ti=2 must take the medicine
•  » » 11 months ago, # ^ |   +8 it was originally came up with DJ2006 :-)
•  » » » 11 months ago, # ^ |   +11 but it is not important. plz add this data into the problem, thx.
•  » » 3 weeks ago, # ^ |   0 I was looking at the submission of hitonanode, which seemed to more or less implement the algorithm described in the second editorial, the correctness of which I had tried to understand and prove. Eventually, to my great surprise, I constructed the case 6 1 2 0 3 1 2 0 2 2 1 3 3 2 1 15 1 3 1 2 2 for which the answer should be Yes, on which the aforementioned submission outputs No.In my drawing of the corresponding tree below, the two multipliers are circled.As for why it's Yes: 1 -> 2 -> 3 results in 1*3+3 = 6, then 6*2 = 12, 12+2 = 14, 15 cannot be defeated. However, if one does 1*2 + 2 = 4, then 4*3 = 12, then 12+3 = 15, then 15 can be defeated. Afterwards, I checked that the submissions of some other top contestants also output for this Yes.I had thought of private messaging hitonanode about this, but then, I felt a bit too shy to do so to such a highly rated coder for something as relatively unimportant as this. It is also not the first time I've seen solutions with more minor bugs AC. However, I do not think it is impossible that hitonanode or someone else could tell me thru what channel to submit an after contest case. Another thought is that maybe maspy, with whom I once had a minor exchange on GitHub, could point me to the right direction?
 » 11 months ago, # |   0 I'm really delighted to see that I forgot the $\pmod {998244353}$ in G. That's why I got WA.
 » 11 months ago, # |   0 I read the editorial for problem C and couldn't understand it. Why are only 8 ways being considered instead of 16 total ways to form a line? And editorial doesn't consider that the 3 cells can all be equal in which case we don't have to count. Granted that they can't be equal in a line in the given array, but when re-arranged, that very well can be the case. I do not understand why my submission is wrong. Please help :pepecry: