# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
228498 | Ruxandra985 | Collecting Stamps 3 (JOI20_ho_t3) | C++14 | 5 ms | 256 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define DIMN 210
using namespace std;
long long v[DIMN] , t[DIMN];
int main()
{
FILE *fin = stdin;
FILE *fout = stdout;
long long n , l , i , j , curr , poz , timp , urm , sol = 0;
fscanf (fin,"%lld%lld",&n,&l);
for (i = 1 ; i <= n ; i++)
fscanf (fin,"%lld",&v[i]);
for (i = 1 ; i <= n ; i++)
fscanf (fin,"%lld",&t[i]);
for (i = 1 ; i < n ; i++){
for (j = i + 1 ; j <= n ; j++){
/// merge clockwise pana la i, apoi se intoarce si merge counter pana la j
poz = 0;
timp = 0;
curr = 0;
urm = 0;
while (poz != v[i]){
timp += v[urm + 1] - poz;
if (t[urm + 1] >= timp)
curr++;
poz = v[urm + 1];
urm++;
}
/// ai ajuns in i, acum te intorci
poz = l;
timp *= 2;
urm = n + 1;
while (poz != v[j]){
timp += poz - v[urm - 1];
if (t[urm - 1] >= timp)
curr++;
poz = v[urm - 1];
urm--;
}
sol = max(sol , curr);
/// -----------------------------------------------------------------
/// merge mai intai counter pana la j, apoi clockwise pana la i
//if (i == 5 && j == 6)
// printf ("a");
poz = l;
timp = 0;
urm = n + 1;
curr = 0;
while (poz != v[j]){
timp += poz - v[urm - 1];
if (t[urm - 1] >= timp)
curr++;
poz = v[urm - 1];
urm--;
}
/// ai ajuns in j , acum te intorci catre i
poz = 0;
timp *= 2;
urm = 0;
while (poz != v[i]){
timp += v[urm + 1] - poz;
if (t[urm + 1] >= timp)
curr++;
poz = v[urm + 1];
urm++;
}
sol = max(sol , curr);
//if (curr == 8)
// printf ("%lld %lld\n" , i , j);
}
}
poz = 0;
timp = 0;
curr = 0;
urm = 0;
while (poz != v[n]){
timp += v[urm + 1] - poz;
if (t[urm + 1] >= timp)
curr++;
poz = v[urm + 1];
urm++;
}
sol = max(sol , curr);
/// ---------------------------------------------------------------
poz = l;
timp = 0;
urm = n + 1;
curr = 0;
while (poz != v[1]){
timp += poz - v[urm - 1];
if (t[urm - 1] >= timp)
curr++;
poz = v[urm - 1];
urm--;
}
sol = max(sol , curr);
fprintf (fout,"%lld",sol);
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |