| # | 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... | ||||
